将元素添加到GWT

时间:2013-07-02 14:28:01

标签: gwt gwt-elemental

我有一个GWT maven多模块项目。它与mvn gwt:run运行良好 - 但是当我将<inherits name='elemental.Elemental'/>添加到gwt.xml文件时,我收到以下错误。

关键点似乎是JSNI在遍历中突破了什么?

    Caused by: java.lang.IndexOutOfBoundsException: Index: 13, Size: 13 
    at java.util.ArrayList.rangeCheck(ArrayList.java:604) 
    at java.util.ArrayList.get(ArrayList.java:382) 
    at com.google.gwt.dev.shell.CompilingClassLoader$DispatchClassInfoOracle.getClassInfoByDispId(CompilingClassLoader.java:120) 
    at com.google.gwt.dev.shell.CompilingClassLoader.getClassInfoByDispId(CompilingClassLoader.java:1014) 
    at com.google.gwt.dev.shell.Jsni$JsSourceGenWithJsniIdentFixup.visit(Jsni.java:177)  

我尝试过调试它,但我似乎无法追踪任何事情。有什么想法吗?

  

00:00:19.630 [ERROR]无法加载模块入口点类   com.rc.gloopsh.admin.AdminEntryPoint(参见相关的例外情况)   详情)com.google.gwt.dev.jjs.InternalCompilerException:意外   访问期间出错。在   com.google.gwt.dev.js.ast.JsVisitor.translateException(JsVisitor.java:483)     在com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:470)     在com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)     在com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at   com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:893)     在com.google.gwt.dev.js.ast.JsReturn.traverse(JsReturn.java:49)at   com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at   com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at   com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at   com.google.gwt.dev.js.JsToStringGenerationVisitor.printJsBlock(JsToStringGenerationVisitor.java:1032)     在   com.google.gwt.dev.js.JsSourceGenerationVisitor.visit(JsSourceGenerationVisitor.java:59)     在com.google.gwt.dev.js.ast.JsBlock.traverse(JsBlock.java:47)at   com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at   com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at   com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at   com.google.gwt.dev.shell.Jsni.generateJavaScriptForHostedMode(Jsni.java:253)     在   com.google.gwt.dev.shell.Jsni.getJavaScriptForHostedMode(Jsni.java:241)     在   com.google.gwt.dev.shell.ModuleSpaceOOPHM.createNativeMethods(ModuleSpaceOOPHM.java:52)     在   com.google.gwt.dev.shell.CompilingClassLoader.injectJsniMethods(CompilingClassLoader.java:1380)     在   com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1151)     在   com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1196)     在java.lang.ClassLoader.loadClass(ClassLoader.java:356)at   com.google.gwt.user.client.DOM.appendChild(DOM.java:66)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:191)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:90)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:181)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:140)at   com.rc.gloopsh.resources.GloopshNav.addNav(GloopshNav.java:34)at at   com.rc.gloopsh.admin.AdminEntryPoint.onModuleLoad(AdminEntryPoint.java:29)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:601)at   com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406)at at   com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)     在   com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)     在   com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)     在java.lang.Thread.run(Thread.java:722)引起:   java.lang.IndexOutOfBoundsException:索引:13,大小:13 at   java.util.ArrayList.rangeCheck(ArrayList.java:604)at   java.util.ArrayList.get(ArrayList.java:382)at   com.google.gwt.dev.shell.CompilingClassLoader $ DispatchClassInfoOracle.getClassInfoByDispId(CompilingClassLoader.java:120)     在   com.google.gwt.dev.shell.CompilingClassLoader.getClassInfoByDispId(CompilingClassLoader.java:1014)     在   com.google.gwt.dev.shell.Jsni $ JsSourceGenWithJsniIdentFixup.visit(Jsni.java:177)     在   com.google.gwt.dev.js.ast.JsInvocation.traverse(JsInvocation.java:69)     在com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)     在com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)     在com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at   com.google.gwt.dev.js.JsToStringGenerationVisitor.visit(JsToStringGenerationVisitor.java:893)     在com.google.gwt.dev.js.ast.JsReturn.traverse(JsReturn.java:49)at   com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at   com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at   com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at   com.google.gwt.dev.js.JsToStringGenerationVisitor.printJsBlock(JsToStringGenerationVisitor.java:1032)     在   com.google.gwt.dev.js.JsSourceGenerationVisitor.visit(JsSourceGenerationVisitor.java:59)     在com.google.gwt.dev.js.ast.JsBlock.traverse(JsBlock.java:47)at   com.google.gwt.dev.js.ast.JsVisitor.doTraverse(JsVisitor.java:468)at at   com.google.gwt.dev.js.ast.JsVisitor.doAccept(JsVisitor.java:445)at   com.google.gwt.dev.js.ast.JsVisitor.accept(JsVisitor.java:109)at at   com.google.gwt.dev.shell.Jsni.generateJavaScriptForHostedMode(Jsni.java:253)     在   com.google.gwt.dev.shell.Jsni.getJavaScriptForHostedMode(Jsni.java:241)     在   com.google.gwt.dev.shell.ModuleSpaceOOPHM.createNativeMethods(ModuleSpaceOOPHM.java:52)     在   com.google.gwt.dev.shell.CompilingClassLoader.injectJsniMethods(CompilingClassLoader.java:1380)     在   com.google.gwt.dev.shell.CompilingClassLoader.findClass(CompilingClassLoader.java:1151)     在   com.google.gwt.dev.shell.CompilingClassLoader.loadClass(CompilingClassLoader.java:1196)     在java.lang.ClassLoader.loadClass(ClassLoader.java:356)at   com.google.gwt.user.client.DOM.appendChild(DOM.java:66)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:191)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:90)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:181)at   com.google.gwt.user.client.ui.Hyperlink。(Hyperlink.java:140)at   com.rc.gloopsh.resources.GloopshNav.addNav(GloopshNav.java:34)at at   com.rc.gloopsh.admin.AdminEntryPoint.onModuleLoad(AdminEntryPoint.java:29)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:601)at   com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406)at at   com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)     在   com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)     在   com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)     在java.lang.Thread.run(Thread.java:722)

2 个答案:

答案 0 :(得分:3)

这是known issue;现在,如果你使用元素,你将不得不使用SuperDevMode

答案 1 :(得分:0)

似乎elemental.Elemental中存在一些GWTJS编译器无法编译的内容。由于Elemental is experimental这样的事情可能会发生......