Приложение GWT, использующее UIBinder, не загружается должным образом - PullRequest
1 голос
/ 19 января 2012

Мое приложение GWT, использующее UiBinder, не загружается в Internet Explorer.Тем не менее, он прекрасно загружается в Firefox, Safari и на iPhone.

Пытаясь изолировать проблему, я вычеркивал детали, пытаясь найти основную причину.Я дошел до метки, и она все еще работает в FF, но не в IE.

Вот EntryPoint:

public class Core implements EntryPoint {

  private static Core instance;
  public static Core instance() {
    return instance;
  }

  @Override
  public void onModuleLoad() {
    instance = this;
    RootPanel container = RootPanel.get("container");
    container.add(new Label("hi"));
  }
}

Вот мой index.jsp:

<!doctype html>
<html>
<head>
<script type="text/javascript" src="core/core.nocache.js"></script>
</head>
<body>
    <div id="container"></div>
</body>
</html>

Вот мой appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application>realAppNameHere</application>
  <version>andrew</version>
  <static-files>
    <include path="**" />
    <!-- The following line requires App Engine 1.3.2 SDK -->
    <include path="**.nocache.*" expiration="0s" />
    <include path="**.cache.*" expiration="365d" />
    <exclude path="**.gwt.rpc" />
  </static-files>
  <!-- Configure java.util.logging -->
  <system-properties>
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
  </system-properties>
</appengine-web-app>

А вот мой web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5"
         xmlns="http://java.sun.com/xml/ns/javaee">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Даже с этой урезанной версией всего, она все еще работаетв Firefox, но не в IE.Теперь нет даже каких-либо ошибок, даже в Firebug ... он просто не показывает метку в IE, но он показывает метку в FF.Я понятия не имею, почему это не работает.

У кого-нибудь есть идеи?

Редактировать 3:

Забыли module.gwt.xmlфайл:

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='core'>
  <!-- Inherit the core Web Toolkit stuff.                        -->
  <inherits name='com.google.gwt.user.User'/>
  <inherits name='com.google.gwt.ajaxloader.AjaxLoader'/>
  <inherits name="com.google.gwt.logging.Logging"/>

  <inherits name='com.google.gwt.user.theme.clean.Clean'/>

  <entry-point class='com.company.core.client.Core'/>

  <source path='client'/>
  <source path='shared'/>

  <set-property name="gwt.logging.logLevel" value="SEVERE"/>
  <set-property name="gwt.logging.enabled" value="FALSE"/>
  <set-property name="gwt.logging.consoleHandler" value="ENABLED"/>
  <set-property name="gwt.logging.simpleRemoteHandler" value="DISABLED" />
</module>

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

При тестировании на реальной копии IE (не плагина IE для Firefox) мы смогли увидеть ошибку «консоль не определена».

Оказывается, это вызывало исключение в IE, препятствующее загрузке страницы:

public native static void log(String inString)
/*-{
  console.log(inString);
}-*/;

Чтобы решить эту проблему, мы возьмем эту ссылку на console и заменим кросс-браузерную библиотеку журналов, такую ​​как GWT-Log

1 голос
/ 09 февраля 2012

Некоторые вещи не появятся в IE6, но они обязательно загрузятся. Первое, что вам нужно увидеть, это то, добавили ли вы пользовательский агент для IE6 как

<set-property name="user.agent" value="ie6"/>

в вашем файле .gwt.xml.

Далее вам нужно проверить, добавили ли вы исключение для localhost в настройках безопасности вашего браузера.

Если все это сделано и все еще не работает, попробуйте очистить ваш проект и перекомпилировать его.

...