簡體   English   中英

Datanucleus Enhancer意外異常

[英]Datanucleus Enhancer Unexpected exception

我想將Datanucleus JDO版本3.2.8與App Engine一起使用以避免RDBMS字符串出現bigint問題(請參閱https://stackoverflow.com/questions/21588107/datanucleus-jdo-map-string-to-mysql-type-bigint-應用內引擎

我從此處http://www.datanucleus.org/products/accessplatform/datastores/appengine.html下載了Datanucleus App Engine插件,並在[AppEngine SDK] / lib / opt / tools / datanucleus和[AppEngine]中創建了文件夾“ v3” SDK] / lib / opt / user / datanucleus,我在其中放置了插件,datanucleus-core,datanucleus rdbms,版本3.2.8中的jdo api jar以及“ jdo-api-3.0.1.jar”,在v2文件夾中,我還在項目屬性中從v2切換到v3,並且項目WEB-INF / lib /包含新的jar。

當我嘗試增強類Datanucleus Enhancer 3.2.8時。 使用以下日志拋出意外的異常:

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:606)
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:74)
    ... 2 more
Caused by: java.lang.NoSuchFieldError: updateLock
    at org.datanucleus.api.jdo.metadata.JDOMetaDataManager.getMetaDataForClassInternal(JDOMetaDataManager.java:440)
    at org.datanucleus.metadata.MetaDataManager.getMetaDataForClass(MetaDataManager.java:1488)
    at org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:545)
    at org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:737)
    at org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:513)
    at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1281)
    ... 7 more

我想讓它起作用嗎? 非常感謝您的幫助

問題是由於CLASSPATH中的DataNucleus jars版本不一致/不兼容。 該消息表明MetaDataManager中不存在字段“ updateLock”。 因此,您的項目中或此“ GAE Eclipse插件”的配置中的CLASSPATH中都會存在一些舊版本的datanucleus-core.jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM