GWT托管模式无法加载模块,但生成的war在其他地方有效



我正在为我的gwt项目使用maven gwt插件和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)

然而,如果我mvn clean install并将生成的战争放在外部码头上,它就会起作用。

我真的很想使用托管模式,因为这会增加开发时间。

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

有人能告诉我我做错了什么或发生了什么吗?

谢谢你抽出时间。

不兼容的类更改表明类路径上有两个不同版本的GWT,但仅在开发模式下,如果war有效,则不在编译时。你是如何运行开发模式的?您使用的是相当旧的GWT版本(还有GWT-maven插件)——您是否可能试图从IDE运行开发模式,其中包括更新版本的GWT?

最近的突破性变化发生在GWT2.0和GWT2.2.0上。根据您获得的GXT副本,您可能只能与GWT2.0兼容到2.1.xhttp://www.sencha.com/products/extgwt/downloads/包括三个jar,一个用于GWT2.0之前的版本,一个适用于2.0和2.2之间的版本,还有一个适用于2.2及更高版本。

相关内容

  • 没有找到相关文章

最新更新