GWT元素简单示例中的异常

GWT元素简单示例中的异常,gwt,gwt-elemental,Gwt,Gwt Elemental,我正在尝试运行GWT Elemental示例(来自GWT2.5.1存储库),它在运行时给了我一个异常。为了让它运行,我不得不对代码进行一些更改,我猜这是对Elemental的更改的结果,这些更改没有反映在示例代码中。以下是代码,并注明了我的更改: @覆盖 moduleload()上的公共void{ final ButtonElement btn=getDocument().createButtonElement(); btn.setInnerHTML(“w00t?”); btn.getStyle

我正在尝试运行GWT Elemental示例(来自GWT2.5.1存储库),它在运行时给了我一个异常。为了让它运行,我不得不对代码进行一些更改,我猜这是对Elemental的更改的结果,这些更改没有反映在示例代码中。以下是代码,并注明了我的更改:

@覆盖
moduleload()上的公共void{
final ButtonElement btn=getDocument().createButtonElement();
btn.setInnerHTML(“w00t?”);
btn.getStyle().setColor(“红色”);
getDocument().getBody().appendChild(btn);
final DivElement div=getDocument().createDivElement();
getDocument().getBody().appendChild(div);
EventListener=新的EventListener(){
@凌驾
公共无效handleEvent(事件evt){
最终XMLHttpRequest xhr=getWindow().newXMLHttpRequest();
setOnload(新的EventListener(){
@凌驾
公共无效handleEvent(事件evt2){
div.setInnerHTML(xhr.getResponseText());
}
});
open(“GET”,“/snippet.html”);
xhr.send();
getWindow().setTimeout(新的TimeoutHandler(){/***已从“new Window.TimerCallback()”更改为“new Window.TimerCallback()”
@凌驾
public void onTimeoutHandler(){/***已从“public void fire()”更改为
getWindow().alert(“触发超时”);
}
}, 1000);
removeEventListener(Event.CLICK,this,false);
}
};
btn.addEventListener(Event.CLICK,listener,false);
}
原始代码在这里:

异常发生在以下行:
btn.addEventListener(Event.CLICK,listener,false),并且似乎是由其中一个JavaScript库中的null对象引起的。如果我注释掉
btn.addEventListener()
调用,则该页面将显示在浏览器中,并带有按钮(当然,尽管它不起作用,没有事件侦听器)。是否有其他人尝试运行此示例?如果是这样的话,您是否有在最新版本的GWT中运行的指针

以下是堆栈跟踪:

com.google.gwt.core.client.JavaScriptException: (String) : Invoking an instance method on a null instance
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
 at java.lang.reflect.Constructor.newInstance(Unknown Source)
 at com.google.gwt.dev.shell.ModuleSpace.createJavaScriptException(ModuleSpace.java:80)
 at com.google.gwt.dev.shell.ModuleSpace.createJavaScriptException(ModuleSpace.java:64)
 at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:60)
 at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
 at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
 at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
 at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
 at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
 at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
 at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
 at elemental.js.dom.JsElementalMixinBase$.addEventListener$(JsElementalMixinBase.java)
 at com.google.gwt.core.client.JavaScriptObject$.elemental_html_ButtonElement_addEventListener(JavaScriptObject.java)
 at org.greatlogic.elementalfile.client.ElementalFileEntryPoint.onModuleLoad(ElementalFileEntryPoint.java:48)
 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:406)
 at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
 at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)
 at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
 at java.lang.Thread.run(Unknown Source)

(请注意,我已将代码粘贴到我自己的项目中,并因此粘贴到了
org.greatlogic.elementalfile.client.ElementalFileEntryPoint
classname)。

我遇到了类似的问题。无法在elemental“simple and silvercoment”下执行这两个示例。我在猜。我可能会尝试用gwt主干构建所有内容,然后再试一次。如果我看到它就会更新。谢谢SSR。。。我尝试创建一个
InputElement
并设置
Onchange
事件处理程序-此操作失败,出现了相同的“null instance”错误。>警告>>Elemental正在进行中。由于它是根据IDL规范>自动生成的,并且>HTML5的规范会随着时间的推移快速变化,因此>生成的代码没有单元测试,最新HTML5的使用未经测试,可能会>中断。>>Elemental还引入了一组新的本机JS集合,这些集合>不可与Java集合互操作。>>目前,Elemental是从WebKit IDL文件生成的,并且>包含许多对供应商前缀浏览器扩展名的引用。使用>这些草案规范扩展可能会导致codeYep,我已经阅读了Elemental的Google文档,我知道它根本不能保证工作。我只是希望有人能在这里提出一些建设性的建议!elemental的某些部分可能会随着浏览器规范的快速变化而更新。AFAIK Elemental已经有一段时间没有更新了(我自己也发现了一些不一致之处)。最好是在问题跟踪程序中创建一个问题。我想一旦elemental根据更新的IDL规范重新构建,这些bug就会自动修复。