我試圖用App Engine和Maven配置創建一個使用JDO的簡單測試。App Engine,JDO和Maven。啓動時出錯
我的編譯和數據增強步驟成功。但在運行時(這兩個MVN:測試和AppEngine上:devserver)我得到:
1) Error in custom provider, javax.jdo.JDOFatalInternalException:
Class "com.google.appengine.datanucleus.DatastoreManager" was not found in the CLASSPATH.
Please check your specification and your CLASSPATH.
然而,我的類路徑(目標/演示/ WEB-INF/lib中)不包含:DataNucleus將-AppEngine上-2.1.1.jar
我的依賴關係是相同的谷歌DataNucleus將項目的POM規定:
<dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>[3.1.1, 3.2)</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jdo</artifactId>
<version>[3.1.1, 3.2)</version>
</dependency>
<dependency>
<groupId>com.google.appengine.orm</groupId>
<artifactId>datanucleus-appengine</artifactId>
<version>2.1.1</version>
</dependency>
欣賞任何建議。
RB
可能有JDO版本DataNucleus將與衝突。將datanucleus-core更改爲3.0 – Sabarish
@Sabarish,我嘗試了很多版本組合。從App Engine ORM項目中引用的那些開始(即JDO:3.0.1,DataNucleus:[3.1.1,3.2),ORM:2.1.1): https://code.google.com/p/ datanucleus-appengine/source/browse/branches/2_1_1/pom.xml 在增強階段,JOD/datanucleus衝突似乎較早出現。 – rsb
因此,[這](http://www.datanucleus.org/products/accessplatform_3_2/datastores/appengine.html)似乎有正確的信息(很難從GAE文檔中找到):datanucleus-appengine 2.1.1需要org.datanucleus 3.1(並且插件也需要匹配)。但是,現在我有一個不同的構建錯誤:「類」XXX「不可持久化,這意味着它未被增強,或者文件的增強版本不在CLASSPATH中。 (mvn datanuclues:提升運行正常)。開始通過prolix和迄今爲止難以理解的日誌文件... – rsb