Ich verwende Google App Engine (appengine-java-sdk-1.6.6) für eine Anwendung mit JDO und Maven (Maven-gae-plugin) für das Projekt Struktur und Aufbau. Der Build ist erfolgreich und erweitert meine Domain-Klassen mit DataNucleus Enhancer.Klasse org.datanucleus.api.jdo.PersistenceManagerFactoryClass wurde nicht gefunden
Beim Ausführen der Anwendung habe ich dieses Problem: Class org.datanucleus.api.jdo.PersistenceManagerFactoryClass wurde nicht gefunden. Könnte jemand bitte beraten. Danke
PS: Ich habe einen Grep (auf Linux) gemacht, um die PersistenceManagerFactoryClass im APP Engine SDK Ordner zu finden, ich konnte es nicht finden.
Could not instantiate bean class [com.peerbuccoss.apps.mtp.dao.impl.CommonDaoImpl]: Constructor threw exception; nested exception is javax.jdo.JDOFatalUserException: Class org.datanucleus.api.jdo.PersistenceManagerFactoryClass was not found.
NestedThrowables:
java.lang.ClassNotFoundException: org.datanucleus.api.jdo.PersistenceManagerFactoryClass:
java.lang.ClassNotFoundException: org.datanucleus.api.jdo.PersistenceManagerFactoryClass
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at javax.jdo.JDOHelper$18.run(JDOHelper.java:2018)
at javax.jdo.JDOHelper$18.run(JDOHelper.java:2017)
at java.security.AccessController.doPrivileged(Native Method)
at javax.jdo.JDOHelper.forName(JDOHelper.java:2015)
at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1162)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:1093)
at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:919)
Ich habe die Eigenschaft javax.jdo.PersistenceManagerFactoryClass mit der Änderung Wert org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory und es funktioniert gut. –
Sie verwenden also v1 des GAE JDO-Plugins. Offensichtlich ist das alt und wird wahrscheinlich später Probleme haben. Besser, v2 dieses Plugin zu verwenden – DataNucleus
@DataNucleus Danke für Ihre Antwort. Ich habe von Version 1 zu Version 2 migriert und verwende die Konfiguration von Google (https://developers.google.com/appengine/docs/java/datastore/jdo/overview-dn2#Creating_the_jdoconfig_xml_File), habe das gleiche Problem "Class org. datanucleus.api.jdo.PersistenceManagerFactoryClass wurde nicht gefunden ". –