2

我花了一天时间试图让我的 GWT 2.6 项目使用 SuperDevMode。我已经到了可以在 Chrome 中启动 SuperDevMode、codeserver 等的地步(也在 Firefox、Linux 和 Windows 中进行了测试),但是似乎没有多少研究足以让我超越我坚持的点:

该站点在作为普通服务器运行时运行良好,(并且它曾经在 Classic Devmode 中运行良好)我有理由相信它从根本上没有任何问题,但是一旦我切换到 SuperDevMode,GWT 模块就不会加载。我只得到静态内容。

首先,我在 Chrome 开发者工具的控制台中发现了一个错误。我得到一个堆栈跟踪,声称无法在未定义的引用上调用我的 ClientFactory 的 getCalendarFactory 方法(但同样,如果没有 SuperDevMode,这不会发生)

Uncaught com.google.web.bindery.event.shared.UmbrellaException: Exception caught: Exception caught: Exception caught: (TypeError) : Cannot read property 'getCalendarFactory' of undefined
SimpleEventBus.java:203
$doFire_0 SimpleEventBus.java:203
$fireEvent_1 SimpleEventBus.java:88
fireEvent_7 SimpleEventBus.java:52
$goTo PlaceController.java:156
$handleHistoryToken PlaceHistoryHandler.java:192
$handleCurrentHistory PlaceHistoryHandler.java:118
$onModuleLoad XXXAppController.java:62init_1 com_00046XXX_00046XXX_00046XXX__EntryMethodHolder.java:3
apply_0 Impl.java:283
entry0 Impl.java:347
(anonymous function) Impl.java:92gwtOnLoad XXX-0.js:46819
(anonymous function) Comparators.java:32

我对此进行了非常努力的研究,但我仍然无法理解堆栈跟踪。几个小时后,我决定从我的 AppController 类中注释掉一行(这是 gwt.xml 中的入口点):

// historyHandler.handleCurrentHistory();

然而,现在当我在 SuperDevMode 中加载页面时,我不再收到异常,除了静态内容、没有错误或 GWT 模块的输出之外,我什么也没有得到,所以 UmbrellaException 消失了,但其他一切都没有真正改变。

任何帮助或指导将不胜感激。

4

1 回答 1

0

你用过maven吗?如果是这种情况,您是否在 Tomcat/Jetty 容器上使用您的 superDevMode 服务器午餐?

要查看您的 superDevMode 的服务器是否正常工作,您需要转到 url “127.0.0.1/9876”。如果您没有响应的服务器,那么您的 superDevMode 不是午餐。

更多信息: http: //www.gwtproject.org/articles/superdevmode.html

于 2014-10-27T19:16:43.137 回答