【问题标题】:GAE , Some Exception after upgrade datanucleus jar packagesGAE,升级datanucleus jar包后出现一些异常
【发布时间】:2012-04-04 06:18:35
【问题描述】:

当我将 sdk orm jar 更改为 v2(默认包括通过 sdk)时,我得到了一些异常信息。这是关于 datanucleus-core-3.0.6.jar 已经注册 bla bla .... 经过搜索,我知道这是3.0.6中的一个错误。所以,我用 datanucleus-core-3.0.10.jar 来代替它。 但是编译pojo Enhancer时却没有成功

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:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    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

这是我在 \lib\user\orm 中的 jar 文件

asm-3.3.1.jar
datanucleus-api-jdo-3.0.5.jar
datanucleus-api-jpa-3.0.6.jar
datanucleus-appengine-2.0.0-final.jar
datanucleus-core-3.0.10.jar
geronimo-jpa_2.0_spec-1.0.jar
jdo-api-3.0.jar
transaction-api-1.1.jar

我整天都在找。有谁知道它有什么问题吗?

【问题讨论】:

    标签: java google-app-engine datanucleus


    【解决方案1】:

    您在某处的 CLASSPATH 中有旧版本的 datanucleus-core 和 datanucleus-enhancer。该堆栈跟踪中的“OMFContext”在 DataNucleus 中已经存在很长时间了。

    【讨论】:

      【解决方案2】:

      我想我知道,为什么用新的数据核升级 appengine 不起作用。它不是类路径条目!我发现在触发增强步骤的ant-macro.xml 中,有一个指向appengine-tools-api.jar 的链接,并且有EnhancerTask 类。这可能是旧版本的链接,因为新的 datanucleus-enhancer-3.0.1.jar 有它自己的 EnhancerTask 类。因此,将新版本的 datanucleus 与旧的 appengine sdk 一起使用(与 http://code.google.com/p/datanucleus-appengine/wiki/HowToUpdateTheSDKWithANewPluginVersion 相反)的唯一方法是通过 ant (https://developers.google.com/web-toolkit)进行增强步骤/doc/1.6/tutorial/appengine)或者可能是eclipse-datanucleus-plugin。不幸的是,这个插件在我的 Eclipse 中不能正常工作。安装/配置插件后,仍然没有项目上下文菜单“datanucleus”,我应该在其中添加支持。所以我会尝试ant 版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-14
        • 2012-11-28
        • 2015-04-18
        • 1970-01-01
        • 2022-09-23
        • 2014-05-29
        • 2020-06-02
        • 2012-02-12
        相关资源
        最近更新 更多