0

我已经升级到 appengine 1.7.4,现在有些东西坏了。

部署到本地开发时,appengine 出现以下错误。

Class "com.google.appengine.datanucleus.DatastoreManager" was not found in the C
LASSPATH. Please check your specification and your CLASSPATH.
org.datanucleus.exceptions.ClassNotResolvedException: Class "com.google.appengin
e.datanucleus.DatastoreManager" was not found in the CLASSPATH. Please check you
r specification and your CLASSPATH.

这不是 java.lang.ClassNotFoundException 而是 org.datanucleus.exceptions.ClassNotResolvedException

我的库是

appengine-api-1.0-sdk-1.7.4  
appengine-api-labs-1.7.4  
datanucleus-api-jdo-3.2.0-m3  
datanucleus-api-jpa-3.2.0-m3  
datanucleus-appengine-2.1.1  
datanucleus-core-3.2.0-m3  
datanucleus-enhancer-3.1.1  

它是使用 Maven 构建的。

DataNucleus App Engine 插件兼容性 http://code.google.com/p/datanucleus-appengine/wiki/Compatibility 状态

3.0:
Requires DataNucleus 3.2+ (core, api-jdo, api-jpa).
Requires SDK 1.7.0+

datanucleus-appengine-2.1.1 pom 依赖于

org.datanucleus datanucleus-api-jdo [3.1.1, 3.2)  
org.datanucleus datanucleus-api-jpa [3.1.1, 3.2)  
org.datanucleus datanucleus-core    [3.1.1, 3.2)  
org.datanucleus datanucleus-enhancer    [3.1.0-release, )  

库的版本有问题,但我无法确定。
DN 插件和 sdk 1.7.4 的正确依赖关系是什么?

-lp

4

2 回答 2

3

为什么在 CLASSPATH 中有“datanucleus-api-jdo”和“datanucleus-api-jpa”?确定您正在使用的 API 并使用该 API。其他依赖项在哪里?持久性 api.jar 的 jdo-api.jar ?

除非您使用 datanucleus-appengine 插件的 SVN 主干,否则您不能使用 DataNUcleus 3.2,如http://code.google.com/p/datanucleus-appengine/wiki/Compatibility上清楚显示

于 2013-02-08T06:39:49.467 回答
0

好的,问题是插件 2.1.1 依赖于 DN 3.2x。正如@datanucleus 提到的那样,这是不正确的,它应该限制在 DN 3.1.1 以内。

通过手动将插件的依赖项设置为 DN 3.1.1。现在一切正常。

谢谢@Datanucleus

于 2013-02-11T04:13:57.140 回答