Хостинг в GWT не загружает модуль, но сгенерированная война работает в другом месте. - PullRequest
0 голосов
/ 13 февраля 2012

Я использую maven-gwt-plugin и ext-gwt для своего проекта 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

Может кто-нибудь сказать мне, что я делаю неправильно или что происходит?

Спасибо за ваше время.

1 Ответ

2 голосов
/ 13 февраля 2012

Несовместимое изменение класса указывает на то, что у вас есть две разные версии GWT на вашем пути к классам - но только в режиме разработки, а не во время компиляции, если война работает.Как вы работаете в режиме разработки?Вы используете довольно старую версию GWT (и gwt-maven-plugin тоже) - возможно ли, что вы пытаетесь запустить режим dev из вашей IDE, которая включает в себя более свежую версию GWT?

Последние изменения произошли в GWT 2.0 и GWT 2.2.0.В зависимости от того, какую копию GXT вы получаете, вы можете быть совместимы только с GWT 2.0 до версии 2.1.x.Более новые версии GXT от http://www.sencha.com/products/extgwt/downloads/ включают три банки: одну до GWT 2.0, одну между 2.0 и 2.2 и одну для 2.2 и выше.

...