简体   繁体   English

GWT托管模式无法加载模块,但生成的战争在其他地方工作

[英]GWT hosted mode fails loading module but the generated war works elsewhere

I'm using maven-gwt-plugin and ext-gwt for my GWT project and when I want to run the hosted mode in eclipse as advised here: http://mojo.codehaus.org/gwt-maven-plugin/user-guide/hosted.html I got the following message: 我正在为我的GWT项目使用maven-gwt-plugin和ext-gwt,当我想在eclipse中运行托管模式时,如下所示: http//mojo.codehaus.org/gwt-maven-plugin/user- guide / hosted.html我收到以下消息:

16:47:13.063 [ERROR] [tempoui] Unable to load module entry point class net.stinfoservices.axsens.tempo.ui.client.TempoUI (see associated exception for details)
java.lang.RuntimeException: Deferred binding failed for 'com.extjs.gxt.ui.client.image.XImages' (did you forget to inherit a required module?)
    at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
    at com.google.gwt.core.client.GWT.create(GWT.java:98)
    at com.extjs.gxt.ui.client.GXT.<clinit>(GXT.java:37)
    at com.extjs.gxt.ui.client.util.Theme.<clinit>(Theme.java:44)
    at net.stinfoservices.axsens.tempo.ui.client.TempoUI.onModuleLoad(TempoUI.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IncompatibleClassChangeError: Found interface com.google.gwt.core.ext.typeinfo.JClassType, but class was expected
    at com.google.gwt.user.rebind.ui.ImageBundleGenerator.getValidUserType(ImageBundleGenerator.java:367)
    at com.google.gwt.user.rebind.ui.ImageBundleGenerator.generate(ImageBundleGenerator.java:142)
    at com.google.gwt.core.ext.GeneratorExtWrapper.generate(GeneratorExtWrapper.java:48)
    at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrementally(GeneratorExtWrapper.java:60)
    at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:647)
    at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:41)
    at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:78)
    at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:268)
    at com.google.gwt.dev.shell.ShellModuleSpaceHost.rebind(ShellModuleSpaceHost.java:141)
    at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:585)
    at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:455)
    at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
    at com.google.gwt.core.client.GWT.create(GWT.java:98)
    at com.extjs.gxt.ui.client.GXT.<clinit>(GXT.java:37)
    at com.extjs.gxt.ui.client.util.Theme.<clinit>(Theme.java:44)
    at net.stinfoservices.axsens.tempo.ui.client.TempoUI.onModuleLoad(TempoUI.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
    at java.lang.Thread.run(Thread.java:662)

However, if I mvn clean install and put the generated war on an external jetty it works. 但是,如果我mvn clean install并将生成的战争放在外部码头上就行了。

I really want to use the hosted mode since it's a gain of development time. 我真的想使用托管模式,因为它是一个开发时间的增益。

Here is my pom.xml: http://pastebin.com/xPwCkw2c 这是我的pom.xml: http//pastebin.com/xPwCkw2c

Can someone tell me what am I doing wrong or what is going on? 有人能告诉我我做错了什么或者发生了什么事吗?

Thank you for your time. 感谢您的时间。

The incompatible class change is an indication that you have two different versions of GWT on your classpath - but only at dev mode, not at compile time if the war works. 不兼容的类更改表明您的类路径上有两个不同版本的GWT - 但仅在开发模式下,而不是在编译时如果战争有效。 How are you running dev mode? 你是如何运行开发模式的? You are using a fairly old version of GWT (and gwt-maven-plugin too) - is it possible that you are trying to run dev mode from your IDE which is including a more recent version of GWT? 您正在使用相当旧版本的GWT(以及gwt-maven-plugin) - 您是否有可能尝试从IDE运行开发模式,其中包括更新版本的GWT?

The recent breaking changes occurred at GWT 2.0 and GWT 2.2.0. 最近的突破性变化发生在GWT 2.0和GWT 2.2.0。 Depending on which copy of GXT you are getting, you might only be compatible with GWT 2.0 until 2.1.x. 根据您获得的GXT副本,您可能只与2.1.x兼容GWT 2.0。 Newer versions of GXT from http://www.sencha.com/products/extgwt/downloads/ include three jars, one for before GWT 2.0, one for between 2.0 and 2.2, and one for 2.2 and beyond. 来自http://www.sencha.com/products/extgwt/downloads/的较新版本的GXT包括三个罐子,一个用于GWT 2.0之前,一个用于2.0和2.2之间,一个用于2.2及更高版本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM