我目前正在GWT页面上完成StockWatcher-Tutorial,并且到目前为止Step 3: Build the User Interface. 我改变了托管HTML页面的内容,并完成了本教程的其余部分。 但是当我尝试测试新页面并启动 Run> Debug As> Web应用程序,我在onLoad()中得到一个例外:
onModuleLoad()在加载模块时抛出异常异常 com.ma.project.client.MaWebAppProject。请参阅开发模式 的信息。
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at java.lang.reflect.Method.invoke(未知来源)at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) 在 com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525) 在 com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363) 在java.lang.Thread.run(未知来源)引起: java.lang.NullPointerException at com.ma.project.client.MaWebAppProject.onModuleLoad(MaWebAppProject.java:41) ... 9更多
Eclipse中的Development Mode选项卡说:
[错误] [mawebappproject] - 无法加载模块入口点类 com.ma.project.client.MaWebAppProject(参见相关的例外) 详情)
到目前为止,我发现,虽然我保存了文件和所有内容,但我在HTML文件中所做的更改似乎无法被开发服务器识别。我尝试使用 GWT编译项目但没有效果。 似乎Java代码崩溃,因为它无法找到用作RootPanel的 。
有没有人有想法?
更新:经过一些跟踪和错误后我发现我必须在错误消息后在浏览器中刷新一次页面。它起作用了。我仍然不知道为什么会这样,但到目前为止它还没有发生......
答案 0 :(得分:1)
可能是你用页面中的那个替换了整个html文件。这可能会导致问题,因为在页面上,它使用的项目名称肯定不是stockwatcher
,但显然是这样的:com.ma.project.client.MaWebAppProject
(猜测)。
我建议你只恢复最后一个运行状态并只替换标记为黄色的行,然后它应该可以工作。
另一个原因可能是你没有使用RootPanel.get("stockList")
或给id div另一个名字(这一个:<div id="stockList"></div>
)。这两个名称必须相同(当然,id字段是唯一的),因为RootPanel get方法搜索具有该id的字段并将Widget放在其中。 (顺便说一下:RootPanel.get()
没有参数,它使用了body元素,所以你也可以试试这个。)
这就是现在所有的可能性^^
答案 1 :(得分:0)
我想我有这个问题。我的问题最终是因为“stocklist”这个词在html id中是小写的,如下所示:
<div id="stocklist"></div>
但是在库存清单与主面板相关联的java代码中有驼峰:
RootPanel.get("stockList").add(mainPanel);
当然,解决方案是让一个匹配另一个。