运行时异常 - Datanucleus增强器

时间:2012-06-19 17:09:24

标签: java eclipse google-app-engine datanucleus

为了触发Datanucleus enhancer,我需要做一个虚拟修改Persistable类/ Entity然后再次保存它。 但是,当触发时,抛出/记录此错误:

java.lang.RuntimeException: Unexpected exception
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:76)
    at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java:71)
    at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:51)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:74)
    ... 2 more
Caused by: java.lang.NoSuchMethodError: org.datanucleus.plugin.PluginManager.<init>(Lorg/datanucleus/PersistenceConfiguration;Lorg/datanucleus/ClassLoaderResolver;)V
    at org.datanucleus.OMFContext.<init>(OMFContext.java:159)
    at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:172)
    at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:150)
    at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1157)
    ... 7 more

虽然datanucleus-enhancer-3.0.1在Maven类路径中,也在WEB-INF /文件夹中。

如果不丢失库,可能导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:2)

你相信你在网上看到的一切吗? jasper-compiler与DataNucleus增强有什么关系?答:没事。那篇文章是关于一些Jasper课程缺少的方法......你没有。

您只是使用“datanucleus-enhancer”和“datanucleus-core”的不一致版本。如果你使用的是Maven,你就不会有问题,但是因为你不是,你可以很容易地看到here,如果使用datanucleus-enhancer 3.0.1那么你也需要datanucleus-core 3.0.x.毕竟,NoSuchMethodError也意味着...... CLASSPATH中不存在某些东西。打包的DataNucleus zip分发始终提供所有一致的文件,因此您没有使用其中一个