用于本地数据库的Appengine jdoconfig.xml

iva*_*ras 5 postgresql google-app-engine jdo datanucleus

有没有人成功配置JDO datanucleus默认谷歌应用程序引擎在本地数据库上工作?

当我指定了值为"rdbms"的属性"datanucleus.storeManagerType"时,为什么我总是在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"/>
Run Code Online (Sandbox Code Playgroud)

PMF.java的代码

private static final PersistenceManagerFactory pmfInstance =
JDOHelper.getPersistenceManagerFactory("postgresql");
Run Code Online (Sandbox Code Playgroud)

iva*_*ras 2

当使用默认 app-engine sdk 的“事务可选”数据存储之外的另一个数据存储时,您需要使用另一个 Web 应用程序容器,例如 apache-tomcat 或 jetty,以便使用 RDBMS 驱动程序类(即 postgresql.jar-org. postgresql.Driver, mysql.jar com.mysql.jdbc.Driver) 工作,因为 google app engine 禁止您的应用程序使用数据库驱动程序使用的 java.net.socket.*