我创建了一个运行良好的应用引擎,并以调试模式从我的 Google 云 SQL 数据库返回记录。当我部署 appegine 并运行端点时,它会出错。我在 appengine 日志中得到的错误是:
原因:org.datanucleus.exceptions.NucleusUserException:没有可用的“jdbc”类型的 StoreManager。确保您已将相关的 DataNucleus 存储插件放在您的 CLASSPATH 中,如果通过 JNDI 或 DataSource 定义连接,您还需要提供持久性属性“datanucleus.storeManagerType”。
这是一个列表或 war\WEB-INF\lib 目录中的 jars:
- appengine-api-1.0-sdk-1.7.6
- appengine-api-实验室
- 应用引擎端点
- appengine-jsr107cache-1.7.6
- asm-4.0
- com.sun.tools.xjc_2.2.0
- com.sun.xml.bind_2.2.0.v201004141950
- 数据核-api-jdo-3.1.3
- 数据核-api-jpa-3.1.3
- datanucleus-appengine-2.1.2
- datanucleus-core-3.1.3
- 日食链接
- eclipselink-jpa-modelgen_2.4.1.v20121003-ad44345
- gcm-服务器
- geronimo-jpa_2.0_spec-1.0
- javax.activation_1.1.0.v201108011116
- javax.mail_1.4.0.v201005080615
- javax.persistence_2.0.4.v201112161009
- javax.xml.bind_2.2.0.v201105210648
- javax.xml.stream_1.0.1.v201004272200
- jdo-api-3.0.1
- json_simple-1.1
- jsr107cache-1.1
- jta-1.1
- org.eclipse.persistence.jpars_2.4.1.v20121003-ad44345
这是我的persistence.xml:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
<persistence-unit name="transactions-optional" transaction-type="RESOURCE_LOCAL">
<provider></provider>
<class>com.example.myapp.Class1</class>
<class>com.example.myapp.Class2</class>
<properties>
<property name="datanucleus.NontransactionalRead" value="true"/>
<property name="datanucleus.NontransactionalWrite" value="true"/>
<property name="javax.persistence.jdbc.driver" value="com.google.appengine.api.rdbms.AppEngineDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:google:rdbms://something.com:someproj:someapp/somedb"/>
<property name="javax.persistence.jdbc.user" value=""/>
<property name="javax.persistence.jdbc.password" value=""/>
</properties>
</persistence-unit>
</persistence>
使用:cloud sql JPA Datanucleous v2 SDK 1.7.6 Jre7
由于它在调试模式下工作正常,我不明白问题可能是什么,因为我是 appengine 的新手。如果您需要更多信息,请告诉我。
多谢你们。