【发布时间】:2013-09-10 20:00:51
【问题描述】:
我需要一些帮助!我已经重新安装了 Eclipse 和最新的 GWT SDK 2.5.1/App Engine SDK 1.8.4,而我之前工作的应用程序不再工作了。我找不到出路。
据我所知,它与 Maven 依赖项有关。我可以删除它吗?如何? 我相信这很简单。请帮忙!
这是日志:
sep 10, 2013 9:40:01 PM org.datanucleus.enhancer.DataNucleusEnhancer addMessage
SEVERE: An error occured for ClassEnhancer "ASM" when trying to call the method "org.datanucleus.enhancer.asm.ASMClassEnhancer" on class "getClassNameForFileName" : class org.datanucleus.enhancer.asm.ASMClassEnhancer$MyClassVisitor has interface org.objectweb.asm.ClassVisitor as super class
java.lang.IncompatibleClassChangeError: class org.datanucleus.enhancer.asm.ASMClassEnhancer$MyClassVisitor has interface org.objectweb.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.google.appengine.tools.enhancer.EnhancerLoader.loadClass(EnhancerLoader.java:107)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.datanucleus.enhancer.asm.ASMClassEnhancer.getClassNameForFileName(ASMClassEnhancer.java:152)
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 org.datanucleus.enhancer.DataNucleusEnhancer.getClassNameForFilename(DataNucleusEnhancer.java:920)
at org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:736)
at org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:545)
at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1252)
【问题讨论】:
-
作为第一个措施,我会清理项目。如果这没有帮助,请删除所有生成的目录(先备份)。
-
感谢克里斯的提示。我以前做过 - 没有解决问题......
-
好吧,可能是asm版本的问题,类似stackoverflow.com/a/13552626/291741
-
亲爱的克里斯!谢谢您的帮助;但我没有成功:( 在我的项目中我没有 asm*.jar 文件。我尝试添加一个(即上面链接中写的 3.3.1),但它仍然无法正常工作。我尝试切换数据核到 v2,但后来我得到: 引起:org.datanucleus.exceptions.NucleusUserException:你似乎在 CLASSPATH 中有 ASM v3,你需要 ASM v4。我试图将 asm-4.0.jar 添加到 lib 文件夹和类路径。但是问题仍然存在..有什么想法吗???
-
嗯,当我选择 Datanucleus 版本 v2 时,我的 App Engine SDK 1.8.4(我从 Eclipse 3.7 更新站点下载)自动包含 asm-4.0。可能有帮助的一件事是取消选中项目属性中的“Google > App Enginge > 使用 Google App Engine”,然后单击“确定”。再次打开项目属性,检查构建路径(它现在应该不包含 asm.jars),然后再次启用“Google > App Enginge > Use Google App Engine”。
标签: gwt datanucleus