appengine 1.7.4 sdk和com.google.appengine.datanucleus.DatastoreManager未找到

时间:2013-02-08 03:33:47

标签: java google-app-engine datanucleus

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

使用以下内容向本地dev部署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, )  
lib的版本有问题,但我无法确定它。
DN插件和sdk 1.7.4的正确依赖是什么?

-lp

2 个答案:

答案 0 :(得分: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上所示

答案 1 :(得分:0)

确定问题是插件2.1.1依赖于DN 3.2x。 由于@datanucleus提到这是不正确的,它应该限于DN 3.1.1。

通过手动设置插件的依赖关系到DN 3.1.1。现在一切都有效。

感谢@Datanucleus