我升级到了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的版本有问题,但我无法确定它。-lp
答案 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