2012-06-19 53 views
1

爲了觸發Datanucleus enhancer,我需要修改Persistable類/實體,然後再次保存它。 但是觸發時,拋出/日誌此錯誤:運行時異常 - Datanucleus增強器

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將-增強-3.0.1是在Maven類路徑,並在WEB-INF /文件夾。

如果不是缺少庫,可能會導致此錯誤?

+0

來自此處的一個解決方案:http://stackoverflow.com/questions/6200414/java-lang-nosuchmethoderror-java-lang -nosuchmethoderror說修正將包括「jasper-compiler-jdt」我不確定是否應該包含GAE – xybrek

+0

Datanucleus能夠在沒有Jasper組件的情況下運行。 –

回答

2

你相信你在互聯網上閱讀的所有內容嗎? Jasper-Compiler與DataNucleus增強有什麼關係?答:沒什麼。那篇文章講述了一些Jasper課程中缺少的方法......你沒有。

你只是使用「datanucleus-enhancer」和「datanucleus-core」的不一致版本。如果你使用Maven你不會有這個問題,但是因爲你不是,你可以很容易地看到here,如果使用datanucleus-enhancer 3.0.1,那麼你也需要datanucleus-core 3.0.x。畢竟這就是NoSuchMethodError所暗示的......在CLASSPATH中不存在某些東西。打包的DataNucleus郵編髮行版始終提供所有一致性文件,因此您還沒有使用過這些郵件發件人之一:

+0

我正在使用Maven。我相信我已經定義了將v 3.0.1用於Datanucleus依賴關係。 – xybrek

+0

那麼爲什麼你有一個參考OMFContext呢?從DataNucleus很久以前就消失了。你的類路徑是錯誤的。 – DataNucleus

+0

那麼,我創建了一個新的Eclipse項目,從我的原始Maven項目移動,並在CLASSPATH和WEB-INF \ lib文件夾中手動添加依賴關係。當我嘗試執行POST時,出現以下錯誤:持久類\「com.myapp.model.Account \」在數據庫中沒有表, – xybrek