2012-04-04 71 views
1

當我將sdk orm jar更改爲v2(默認包括sdk)時,我得到了一些excepion信息。它是關於datanucleus-core-3.0.6.jar有本註冊的bla bla .... 搜索後,我知道這是3.0.6中的一個錯誤。所以,我用datanucleus-core-3.0.10.jar將它重新分區。 但它不是成功的時候編譯POJO增強GAE,升級後的一些異常datanucleus jar包

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 \用戶\ ORM

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 

我的jar文件我一直在尋找一整天。有沒有人知道它有什麼問題?

回答

0

你在CLASSPATH的某個地方有舊版本的datanucleus-core和datanucleus-enhancer。 DataNucleus中的「OMFContext」在很長一段時間內並不存在。

0

我想我知道,爲什麼它不能用新的datanucleus升級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版本。

相關問題