2010-01-11 15 views
5

Est-ce que quelqu'un a configuré avec succès JDO datanucleus par défaut pour google app engine pour travailler sur une base de données locale?Appengine jdoconfig.xml pour la base de données locale

Pourquoi ai-je toujours une erreur dans jdoconfig.xml lorsque j'ai spécifié la propriété "datanucleus.storeManagerType" avec la valeur "rdbms". à la fin.

J'ai essayé de googler mais ne semble pas avoir de chance.

Causée par: org.datanucleus.exceptions.NucleusUserException: Aucun StoreManager de type "rdbms" n'est disponible. faire s'il vous plaît que vous avez spécifié "datanucleus.storeManagerType" correctement et que tous les plugins sont pertinents dans le 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 pour PMF.java

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

Répondre

2

Lorsque vous utilisez un autre datastore à part le datastore "transaction-optional" du moteur d'application sdk par défaut, vous devez utiliser un autre conteneur d'application Web tel que apache-tomcat ou jetty pour les classes de pilotes rdbms (par exemple, postgresql.jar-org.postgresql.Driver, mysql. jar com.mysql.jdbc.Driver) pour travailler si nce moteur application Google empêche votre application à utiliser la java.net.Socket. * qui est utilisé par les pilotes de base de données

4

Je me souviens de fixation en incluant DataNucleus-SGBDR-XYZjar dans mon WEB-INF/lib

+0

Merci. J'ai résolu le même problème en ajoutant la dépendance 'org.datanucleus: datanucleus-rdbms: X.Y.Z' dans pom.xml. –