【问题标题】:Appengine jdoconfig.xml for local database本地数据库的 Appengine jdoconfig.xml
【发布时间】:2011-01-03 16:54:26
【问题描述】:

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

为什么当我将属性“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");

【问题讨论】:

    标签: google-app-engine postgresql jdo datanucleus


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我通过在 pom.xml 中添加 'org.datanucleus:datanucleus-rdbms:X.Y.Z' 依赖项解决了同样的问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      相关资源
      最近更新 更多