roo示例gwtNoEntities无法加载

时间:2010-12-05 20:46:25

标签: gwt spring-roo

我刚刚尝试了与roo-1.1.0捆绑在一起的gwtNoEntities示例。

使用tomcat:run或jetty:run启动时,我只得到加载框。

在GWT托管模式下运行时,我在客户端报告了以下堆栈跟踪,
这似乎是与使用浏览器历史记录设置默认位置相关的错误,该历史记录为空。

解决这个问题的正确方法是什么?

stacktrace

    00:02:08.323 [ERROR] Unable to load module entry point class com.springsource.foo.client.scaffold.Scaffold (see associated exception for details)
    java.util.NoSuchElementException: null
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at com.springsource.foo.client.scaffold.ScaffoldDesktopApp.init(ScaffoldDesktopApp.java:139) 
at com.springsource.foo.client.scaffold.ScaffoldDesktopApp.run(ScaffoldDesktopApp.java:61)
at com.springsource.foo.client.scaffold.Scaffold.onModuleLoad(Scaffold.java:19)
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:183)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:510)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
at java.lang.Thread.run(Thread.java:619)

生成的问题代码

/* Browser history integration */
ScaffoldPlaceHistoryMapper mapper = GWT.create(ScaffoldPlaceHistoryMapper.class);
mapper.setFactory(placeHistoryFactory);
PlaceHistoryHandler placeHistoryHandler = new PlaceHistoryHandler(mapper);
/* 139 */ ProxyListPlace defaultPlace = getTopPlaces().iterator().next();
placeHistoryHandler.register(placeController, eventBus, defaultPlace);
placeHistoryHandler.handleCurrentHistory();

1 个答案:

答案 0 :(得分:1)

您可以使用以下条件块替换生成的代码(第139行)

    while (getTopPlaces().iterator().hasNext()) {
    ProxyListPlace defaultPlace = getTopPlaces().iterator().next();
    placeHistoryHandler.register(placeController, eventBus, defaultPlace);
    placeHistoryHandler.handleCurrentHistory();
}

使用mvn编译重新编译,使用mvn gwt:run重新启动。现在你应该没有错误但是空页。

gwtNoEntities.roo示例没有数据。您可以尝试其他示例,如expense.roo。生成的代码应该没问题。

如果有帮助,请记得接受答案。

感谢。