Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 作为Java应用程序进行调试-onModuleLoad()错误_Eclipse_Debugging_Google App Engine_Gwt - Fatal编程技术网

Eclipse 作为Java应用程序进行调试-onModuleLoad()错误

Eclipse 作为Java应用程序进行调试-onModuleLoad()错误,eclipse,debugging,google-app-engine,gwt,Eclipse,Debugging,Google App Engine,Gwt,我正在试着调试一个已经设计好了某种登录页面的现有应用程序。但是,当我在Eclipse中转到“作为Java应用程序运行”时,我收到一个错误: 01:18:30.207 [ERROR] [pzflex_test] Unable to load module entry point class com.wai.pzflex.client.PZFlex_Test (see associated exception for details) java.lang.AssertionError: null

我正在试着调试一个已经设计好了某种登录页面的现有应用程序。但是,当我在Eclipse中转到“作为Java应用程序运行”时,我收到一个错误:

01:18:30.207 [ERROR] [pzflex_test] Unable to load module entry point class com.wai.pzflex.client.PZFlex_Test (see associated exception for details)
java.lang.AssertionError: null
    at com.google.gwt.user.client.ui.TextBox.wrap(TextBox.java:63)
    at com.wai.pzflex.client.PZFlex_Test.onModuleLoad(PZFlex_Test.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    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(Unknown Source)
下面是我试图使用Eclipse调试的代码

public void onModuleLoad() 
    {
        try
        {
        HTMLPanel panel = new HTMLPanel("<table align='center'><tr>" + 
            "<td colspan='2' style='font-weight:bold;'>Please enter your username and password:</td>" +
            "</tr><tr><td>Username: </td><td><input type='text' id='loginuser'></td></tr>" +
            "<tr><td>Password: </td><td><input type='password' id='loginpass'></td></tr>" +
            "<tr><td colspan='2' align='right'><button id='loginbutton'>Login</button></td>" +
            "</tr></table>");

        //final - entity that cannot be changed later
        final TextBox username = TextBox.wrap(panel.getElementById("loginuser"));
        final TextBox pass = TextBox.wrap(panel.getElementById("loginpass"));

        RootPanel.get("content").add(panel);
模块加载()上的公共void
{
尝试
{
HTMLPanel=新HTMLPanel(“”+
“请输入您的用户名和密码:”+
“用户名:”+
“密码:”+
“登录”+
"");
//最终-以后无法更改的实体
最终TextBox用户名=TextBox.wrap(panel.getElementById(“loginuser”);
最终TextBox pass=TextBox.wrap(panel.getElementById(“loginpass”);
RootPanel.get(“内容”).add(面板);
应用程序似乎一直运行到“final Textbox..”代码行,但当我按resume时,就会出现错误

奇怪的是,我可以进行GWT编译,并且登录页面似乎加载良好。我不明白为什么在调试它时会发生这种情况


同样,我对Java和整个GWT/GAE都是新手,因此任何建议都将不胜感激。

调试并检查
panel.getElementById(“loginuser”)
panel.getElementById(“loginpass”)
RootPanel.get(“内容”)
返回null或不返回null…如果为null,请在html文件中创建一个id为的div

看看失败的断言是什么:

(来源:)

这意味着您需要在
TextBox.wrap()之前
RootPanel.get(“content”).add(panel);

除非它也不起作用。它稍后会失败,因为包装的元素在小部件中(即
HTMLPanel

您需要做的是从HTML字符串中删除
,并将ID添加到
,像普通小部件一样构建
文本框和
密码框,然后使用将它们放入
HTMLPanel
中的


根据需要执行的操作,您可能不需要将
作为小部件,在这种情况下,只需在
HTMLPanel
上使用
getElementById
,并可能将结果转换为一个
cast()

这不是
NullPointerException
,而是一个
AssertionError
,没有提供特定消息(因此,
null
)。
public static TextBox wrap(Element element) {
  // Assert that the element is attached.
  assert Document.get().getBody().isOrHasChild(element);