2010-01-11 7 views
5

Hat jemand JDO datanucleus standardmäßig auf google app engine für die Arbeit in einer lokalen Datenbank konfiguriert?Appengine jdoconfig.xml für lokale Datenbank

Warum bekomme ich immer einen Fehler in jdoconfig.xml, wenn ich die Eigenschaft "datanucleus.storeManagerType" mit dem Wert "rdbms." am Ende Teil.

Ich habe versucht zu googeln, aber scheint kein Glück.

verursacht durch: org.datanucleus.exceptions.NucleusUserException: Es ist kein StoreManager vom Typ "rdbms" verfügbar. Bitte stellen Sie sicher, dass Sie angegeben haben, "datanucleus.storeManagerType" richtig und dass alle relevanten Plugins sind in der CLASSPATH

<persistence-manager-factory name="postgresql"> 
<property name="datanucleus.mapping.Schema" value="jdo"/> 
<property name="javax.jdo.PersistenceManagerFactoryClass" value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/> 
<property name="datanucleus.ConnectionDriverName" value="org.postgresql.Driver"/> 
<property name="datanucleus.ConnectionURL" value="jdbc:postgresql://localhost:5432/jdo"/> 
<property name="datanucleus.ConnectionUserName" value="jdo"/> 
<property name="datanucleus.ConnectionPassword" value="jdo"/> 
<property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/> 
<property name="datanucleus.autoStartMechanism" value="None"/> 
<property name="datanucleus.autoCreateSchema" value="true"/> 
<property name="datanucleus.validateTables" value="true"/> 
<property name="datanucleus.validateConstraints" value="true"/> 
<property name="datanucleus.validateColumns" value="true"/> 
<property name="datanucleus.DetachAllOnCommit" value="true"/> 
<property name="datanucleus.maxFetchDepth" value="1"/> 
<property name="datanucleus.storeManagerType" value="rdbms"/> 

Code für PMF.java

private static final PersistenceManagerFactory pmfInstance = 
JDOHelper.getPersistenceManagerFactory("postgresql"); 

Antwort

2

Wenn beiseite einen anderen Datenspeicher verwenden aus Der Standard-Transaktionsdatenspeicher der App-Engine SDK. Sie müssen einen anderen Web-Anwendungscontainer wie Apache-Tomcat oder Jetty verwenden, um die rdbms-Treiberklassen (dh postgresql.jar-org.postgresql.Driver, mysql. jar com.mysql.jdbc.Driver), um si zu arbeiten nce Google App Engine hemmt die Anwendung die java.net.Socket zu verwenden. *, die von den Datenbanktreiber verwendet wird

4

ich das Speichern Festsetzung indem Datanucleus-RDBMS-XYZjar in meinem WEB-INF/lib

+0

Vielen Dank. Ich habe das gleiche Problem gelöst, indem ich die Abhängigkeit 'org.datanucleus: datanucleus-rdbms: X.Y.Z' in pom.xml hinzugefügt habe. –