【发布时间】:2013-01-17 13:46:38
【问题描述】:
我正在尝试使用带有 App Engine 和 Maven 配置的 JDO 创建一个简单的测试。
我的编译和数据增强步骤成功。但在运行时(mvn:test 和 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.
但是,我的类路径(target/demo/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
【问题讨论】:
-
可能与带有datanucleus的JDO版本有冲突。将 datanucleus-core 更改为 3.0
-
@Sabarish,我尝试了很多版本组合。从 App Engine ORM 项目中引用的那些开始(即 JDO:3.0.1、DataNucleus:[3.1.1,3.2)、ORM:2.1.1):code.google.com/p/datanucleus-appengine/source/browse/branches/…JOD/datanucleus 冲突似乎出现在较早的增强阶段。
-
所以,this 似乎有正确的信息(很难从 GAE 文档中找到):datanucleus-appengine 2.1.1 需要 org.datanucleus 3.1(并且插件也需要匹配) .但是,现在我有一个不同的构建错误:“类“XXX”不可持久。这意味着它要么没有被增强,要么文件的增强版本不在 CLASSPATH 中”。 (mvn datanuclues:enhance 运行良好)。开始浏览冗长的和迄今为止难以理解的日志文件...
标签: google-app-engine maven jdo datanucleus