java - Google Web 工具包运行时错误 : Absent Code attribute in method that is not native or abstract

标签 java javascript gwt

我正在 GWT 中迈出第一步,我对其中的可能性着迷。

到目前为止,我已经建立了一个小项目,该项目依赖于外部库中提供的 Java 类。这个库通过 maven(自己的存储库)提供给我的项目。 我想在客户端使用该库中的 Java 类 - 所以我必须在 jar 中提供源代码,并且必须确保这些类不使用无法转换为 Javascript 的代码。

到目前为止一切顺利。我终于克服了无法找到源代码的错误。现在在 Web 应用程序运行期间出现了一个新错误:

java.lang.ClassFormatError: Absent
Code attribute in method that is not
native or abstract in class file
javax/persistence/LockModeType
    at java.lang.ClassLoader.defineClass1(Native
Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native
Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.Class.getDeclaredMethods0(Native
Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    at java.lang.Class.getMethod0(Class.java:2670)
    at java.lang.Class.getMethod(Class.java:1603)
    at com.google.gwt.dev.javac.TypeOracleMediator.createAnnotation(TypeOracleMediator.java:463)
    at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:725)
    at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotationValue(TypeOracleMediator.java:681)
    at com.google.gwt.dev.javac.TypeOracleMediator.createAnnotation(TypeOracleMediator.java:474)
    at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotation(TypeOracleMediator.java:640)
    at com.google.gwt.dev.javac.TypeOracleMediator.resolveAnnotations(TypeOracleMediator.java:655)
    at com.google.gwt.dev.javac.TypeOracleMediator.resolveClass(TypeOracleMediator.java:801)
    at com.google.gwt.dev.javac.TypeOracleMediator.addNewTypes(TypeOracleMediator.java:416)
    at com.google.gwt.dev.javac.TypeOracleMediatorFromSource.addNewUnits(TypeOracleMediatorFromSource.java:54)
    at com.google.gwt.dev.javac.CompilationState.assimilateUnits(CompilationState.java:164)
    at com.google.gwt.dev.javac.CompilationState.<init>(CompilationState.java:82)
    at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:409)
    at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:299)
    at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:325)
    at com.google.gwt.dev.DevModeBase$UiBrowserWidgetHostImpl.createModuleSpaceHost(DevModeBase.java:105)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:190)
    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:680)

我使用 Eclipse (Helios) 和 Eclipse GWT-PLugin。 Web 应用程序由内部应用程序服务器托管。 JDK 在 Mac OS X 上是 1.6。 对此有什么想法吗?

最佳答案

JDK 不包含 javax.persistence 包的实现 - 它是 Java EE 的一部分。即使是这样,您也不应该在客户端包含与 SQL 相关的库 - 您的 GWT 应用程序无法直接查询 SQL 服务器。

关于java - Google Web 工具包运行时错误 : Absent Code attribute in method that is not native or abstract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6167007/

相关文章:

java - xs :any in xs:all tag for xsd

javascript - 如何从数组中剪切特定项目并将其保存在javascript中的obj中

jQuery.Deferred()/GWT 中的 Promises 功能?

Java - 向下转型时出现 ClassCastException

java - 以编程方式添加时无法识别带重音的 GWT 字符

Java 哈希码和桶大小 - 关系

java - 输入更新后不存储 JTextArea 中的预期字符串

java - Eclipse 版本控制 - 项目不再显示在工作区中的问题

javascript - var a = function() vs function a() 用于事件监听器?

javascript - 将字符串插入表达式