5

有没有人成功地将 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"/>

PMF.java 的代码

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

2 回答 2

4

我记得通过在我的 WEB-INF/lib 中包含 datanucleus-rdbms-XYZjar 来解决这个问题

于 2011-12-11T12:38:39.737 回答
2

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

于 2010-01-25T03:16:15.230 回答