Ich versuche, einen einfachen Test mit JDO mit App Engine und einer Maven-Konfiguration zu erstellen.App Engine, JDO und Maven. Fehler beim Start
Meine Kompilierungs- und Datenverbesserungsschritte sind erfolgreich. Aber zur Laufzeit (beide mvn: Test und appengine: devserver) erhalte ich:
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.
jedoch meine Classpath (Soll/demo/WEB-INF/lib) enthält: Datanucleus-appengine-2.1.1.jar
Und sind meine Abhängigkeiten die gleichen wie die in der Datanucleus Projekt POM Google angegeben:
<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>
Vorschläge zu schätzen wissen.
RB
Es kann ein Konflikt mit JDO-Version mit Datanucleus sein. Ändere Datanucleus-Core zu 3.0 – Sabarish
@Sabarish, ich habe viele Versionskombinationen ausprobiert. Beginnend mit denen, auf die im ORM-Projekt von App Engine verwiesen wird (z. B. JDO: 3.0.1, DataNucleus: [3.1.1,3.2], ORM: 2.1.1): https://code.google.com/p/ datanucleus-appengine/source/browse/branches/2_1_1/pom.xml JOD/Datanucleus-Konflikte scheinen früher im Enhance-Stadium aufzutauchen. – rsb
Also, [dies] (http://www.datanucleus.org/products/accessplatform_3_2/datastores/appengine.html) scheint die richtige Information zu haben (sehr schwer zu finden von der GAE-Dokumentation): datanucleus-appengine 2.1.1 erfordert org.datanucleus 3.1 (und das Plugin muss auch übereinstimmen). Jetzt habe ich jedoch einen anderen Erstellungsfehler: "Die Klasse" XXX "ist nicht persistent. Dies bedeutet, dass sie entweder nicht erweitert wurde oder dass die erweiterte Version der Datei nicht im CLASSPATH enthalten ist". (Mvn Datanuclues: verbessern läuft gut). Beginnen Sie, durch die prolix und bis jetzt unverständliche Log-Datei zu waten ... – rsb