2012-06-21 33 views
7

मैं प्रोजेक्ट के लिए जेडीओ और मेवेन (मेवेन-जीए-प्लगइन) का उपयोग कर एक एप्लिकेशन के लिए Google App Engine (appengine-java-sdk-1.6.6) का उपयोग कर रहा हूं संरचना और निर्माण। बिल्डन्यूक्लियस एन्हांसर के साथ मेरे डोमेन कक्षाओं को बढ़ाने के साथ-साथ निर्माण सफल रहा है।कक्षा org.datanucleus.api.jdo.PersistenceManagerFactoryClass नहीं मिला

आवेदन चलाते समय, मुझे इस समस्या का सामना करना पड़ रहा है: कक्षा org.datanucleus.api.jdo.PersistenceManagerFactoryClass नहीं मिला था। क्या कोई सलाह दे सकता है। धन्यवाद

पीएस: मैंने एपीपी इंजन एसडीके फ़ोल्डर में PersistenceManagerFactoryClass को खोजने के लिए एक grep (linux पर) किया है, मुझे यह नहीं मिला।

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) 
+1

मैं के साथ संपत्ति javax.jdo.PersistenceManagerFactoryClass बदलने है संस्करण 2.1.2 के साथ आप निम्नलिखित PersistenceManagerFactoryClass के साथ अपने jdconfig.xml अद्यतन करना होगा मूल्य org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory और यह ठीक काम करता है। –

+0

तो आप जीएई जेडीओ प्लगइन के v1 का उपयोग कर रहे हैं। जाहिर है कि प्राचीन है इसलिए बाद में समस्याओं को प्रभावित करेगा। उस प्लगइन के v2 का उपयोग करने के लिए बेहतर – DataNucleus

+0

@DataNucleus आपकी प्रतिक्रिया के लिए धन्यवाद। मैं v1 से v2 में माइग्रेट किया गया है और Google (https://developers.google.com/appengine/docs/java/datastore/jdo/overview-dn2#Creating_the_jdoconfig_xml_File) से कॉन्फ़िगरेशन का उपयोग कर रहा हूं, मुझे एक ही समस्या है "कक्षा संगठन। datanucleus.api.jdo.PersistenceManagerFactoryClass नहीं मिला "। –

उत्तर

3

मेरे मामले में मैं datanucleus-appengine- 2.1.2 datanucleus-appengine- 1.0.10 के बजाय का उपयोग कर रहा था।

<property name="javax.jdo.PersistenceManagerFactoryClass" 
     value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/> 

मेरे jdconfig.xml है:

<?xml version="1.0" encoding="utf-8"?> 
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig"> 

    <persistence-manager-factory name="transactions-optional"> 
     <property name="javax.jdo.PersistenceManagerFactoryClass" 
      value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/> 
     <property name="javax.jdo.option.ConnectionURL" value="appengine"/> 
     <property name="javax.jdo.option.NontransactionalRead" value="true"/> 
     <property name="javax.jdo.option.NontransactionalWrite" value="true"/> 
     <property name="javax.jdo.option.RetainValues" value="true"/> 
     <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/> 
     <property name="datanucleus.appengine.singletonPMFForName" value="true"/> 
    </persistence-manager-factory> 
</jdoconfig> 
संबंधित मुद्दे