java - 从 3.0.0 升级后无法运行 Gxt 3.1.1 应用程序

标签 java maven gwt gxt

我尝试将我的项目 GWT 和 Gxt 从 2.5.1,3.0.0 升级到 2.7,3.1.1。我能够通过一些解决方法成功构建项目,但无法运行它。我得到的错误是:

Loading inherited module 'com.ApplicationShellModule'
   Loading inherited module 'com.sencha.gxt.ui.GXT'
      Loading inherited module 'com.sencha.gxt.data.Data'
         Loading inherited module 'com.sencha.gxt.core.Core'
            [ERROR] Line 96: Value 'ie6' in not a valid value for property 'user.agent'

我试图在 applicationShellModule.gxt.xml 中找到原因,这是我的 gxt 配置,如下靠近第 96 行:

  <property-provider name="gxt.user.agent">
    <![CDATA[
    {window.alert("inside user agent gxt");

        var ua = navigator.userAgent.toLowerCase();
        if (ua.indexOf('trident') != -1) {
            if (11 == document.documentMode) return 'gecko1_9';
            return 'ie8';
        } 
        if (ua.indexOf('msie') != -1) {
            return 'ie8';
        } 
        return 'chrome';
    } ]]>
  </property-provider>

  <property-provider name="user.agent">
    <![CDATA[
    { window.alert("inside user agent");

    return 'ie8';

        var ua = navigator.userAgent.toLowerCase();
        if (ua.indexOf('trident') != -1) {
            if (11 == document.documentMode) return 'gecko1_8';
            return 'ie8';
        }
        if (ua.indexOf('msie') != -1) {
            return 'ie8';
        }
        return 'safari';
    } ]]>
  </property-provider>

  <property-provider name="user.agent.os">
    <![CDATA[
    {window.alert("inside user agent os");

        return 'windows';
    } ]]>
  </property-provider>

  <!-- Supported Browsers -->
<!-- uncomment this for dev after upgrade
  <set-property name="gxt.user.agent" value="chrome, ie8, gecko1_9" />
  <set-property name="user.agent.os" value="windows" />
  <extend-property name="locale" values="en,es,ko,pt,ru,fr,hu,pl,zh_CN,zh_TW,tr,uk"/>
  <set-property-fallback name="locale" value="en" />
  <collapse-property name="locale" values="en, default" /> 
-->
<!-- changes for upgrade gwt -->
<set-property name="user.agent" value="ie8,ie9,opera,gecko1_8,safari" />
<set-property name="gxt.user.agent" value="ie8" />
    <set-property name="user.agent.os" value="windows" />
    <extend-property name="locale" values="en" />
    <set-property-fallback name="locale" value="en" />
    <collapse-property name="locale" values="en" />
    <collapse-all-properties />
               <set-configuration-property name="CssResource.obfuscationPrefix"
        value="empty" />
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<set-property name="compiler.useSourceMaps" value="true"/>
<!-- upgrade changes over check last line setting to false below revert it to original-->

我在这里手动设置了用户代理,可以看到浏览器列表,但不是 ie6,这是错误的。我已经搜索了字符串“ie6”,但在任何地方我都找不到这个错误的真正原因。请帮我解决这个问题。

最佳答案

Loading inherited module 'com.sencha.gxt.core.Core'
       [ERROR] Line 96: Value 'ie6' in not a valid value for property 'user.agent'

如果你看到这个,你的类路径上至少还有一个 GXT 3.0 副本——3.1.1 中的 Core.gwt.xml 在 96 处有一个空行。

正如 El Hoss 在评论中提到的那样,GWT 2.7 放弃了对 IE6 的支持,为了兼容,GXT 3.1 也做了同样的事情。如果您看到对 IE6 的引用,则说明您在自己的项目中使用 IE6 进行了自定义,或者实际上没有使用正确版本的 GWT 或 GXT。

关于java - 从 3.0.0 升级后无法运行 Gxt 3.1.1 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32451248/

相关文章:

maven - 为 Gephi 运行 Maven

java - 使用 Streams 查看一个列表是否包含另一个列表中的对象的属性

java - 在 Java 中,假设我们有一个名为 Foo 的类,obj.getClass().getName() 和 Foo.class.getName() 如何获取相同的结果?

java - 执行 HTTP.PUT 的正确方法

java - 桌面应用程序如何与 Web 应用程序通信?

gwt - 我应该在 FF21 的 gwt.xml 中使用什么 user.agent 属性值?

css - 演示者节目中的 GWT 调用方法

java - SalesForce 上有效 SAML2.0 断言的 invalid_grant 错误

java - JUnit Eclipse 与 Ant

java - 如何将 Cobertura 与 Cucumber jvm 和 Maven 一起使用?