2010-01-11 50 views
5

是否有人成功配置了JDO datanucleus默认为Google应用引擎以在本地数据库上工作?用于本地数据库的Appengine jdoconfig.xml

当我指定属性“datanucleus.storeManagerType”的值为“rdbms”时,为什么我总是在jdoconfig.xml中发生错误。在最后部分。

我试过谷歌搜索,但似乎没有运气。

原因:org.datanucleus.exceptions.NucleusUserException:没有可用的类型为“rdbms”的StoreManager。请确保您已指定“datanucleus.storeManagerType”正确和所有相关的插件都在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"/> 

代码PMF.java

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

回答

2

当使用其他数据存储除了默认的应用程序引擎sdk的“事务可选”数据存储,您需要使用另一个Web应用程序容器,例如apache-tomcat或jetty,以便使用rdbms驱动程序类(即postgresql.jar-org.postgresql.Driver,mysql。 jar com.mysql.jdbc.Driver)去工作si NCE谷歌应用程序引擎抑制你的应用程序中使用的java.net.Socket。*这是由数据库驱动程序

4

我记得DataNucleus将包括的RDBMS-XYZjar在我的WEB-INF/lib中修复这个

+0

谢谢。我通过在pom.xml中添加'org.datanucleus:datanucleus-rdbms:X.Y.Z'依赖项解决了同样的问题。 – 2014-03-08 16:59:18

相关问题