1

我一直在尝试在单个 maven 文件夹结构下创建一个可以在 sql 和 gae 上运行的单个项目(需要更改 'datanucleus.properties' 文件)。我首先尝试使用 mysql 在 GAE 网站上获取 Greeting 示例(现在可以使用)。然后,从 beardedgeeks 教程中启发自己,我尝试添加所需的依赖项,以便在 gae 上运行这些东西。但是,通过输入 mvn gae:run,我收到以下错误,发布在http://pastebin.com/fJ7c7xfx上。我花了很多时间在谷歌等搜索答案,但一直无法推进我的案子。

我很高兴得到一些指示。干杯,马诺乔

4

2 回答 2

1

此问题已标记[JDO],但跟踪如下:

Caused by: java.lang.ClassNotFoundException: javax.persistence.InheritanceType
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 77 more

表明您缺少 JPA API jar(由 提供org.apache.geronimo.specs:geronimo-jpa_1.0_spec:1.1.1)。

<dependency>
  <groupId>org.apache.geronimo.specs</groupId>
  <artifactId>geronimo-jpa_3.0_spec</artifactId>
  <version>1.1.1</version>
</dependency>

由于您没有使用 JPA,因此您不必这样做,但正如 @Datanucleus 所解释的那样,datanucleus appengine 插件似乎以某种方式引用了 JPA API。

于 2010-07-16T01:47:19.797 回答
0

Google 的人不明智地在他们的插件中引用了该 JPA 类,因此它要求您的 CLASSPATH 中有 jpa.jar(Geronimo 可以)。很久以前他们提出了一个问题来修复它,但遗憾的是他们没有积极维护他们的插件。

于 2010-07-19T11:18:19.897 回答