2010-01-11 31 views
5

Có ai cấu hình thành công JDO datanucleus mặc định cho công cụ ứng dụng của Google để làm việc trên cơ sở dữ liệu cục bộ không?Appengine jdoconfig.xml cho cơ sở dữ liệu cục bộ

Tại sao tôi luôn gặp lỗi trong tệp jdoconfig.xml khi tôi đã chỉ định thuộc tính "datanucleus.storeManagerType" có giá trị "rdbms". ở phần cuối.

Tôi đã thử googling nhưng dường như không có may mắn.

Gây ra bởi: org.datanucleus.exceptions.NucleusUserException: Không có Trình quản lý kho lưu trữ nào có loại "rdbms". Hãy chắc chắn rằng bạn đã xác định "datanucleus.storeManagerType" một cách chính xác và rằng tất cả các plugin liên quan đang trong 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"/> 

mã cho PMF.java

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

Trả lời

2

Khi sử dụng kho dữ liệu khác ngoài kho dữ liệu "giao dịch tùy chọn" của sdk công cụ ứng dụng mặc định, bạn cần sử dụng một thùng chứa ứng dụng web khác như apache-tomcat hoặc jetty để cho các lớp trình điều khiển rdbms (ví dụ: postgresql.jar-org.postgresql.Driver, mysql. jar com.mysql.jdbc.Driver) để làm việc si động cơ nce google app ức chế ứng dụng của bạn để sử dụng java.net.Socket. * được sử dụng bởi các trình điều khiển cơ sở dữ liệu

4

Tôi nhớ cố định này bằng cách đưa DataNucleus-rdbms-XYZjar trong tôi WEB-INF/lib

+0

Cảm ơn. Tôi đã giải quyết cùng một vấn đề bằng cách thêm phụ thuộc 'org.datanucleus: datanucleus-rdbms: X.Y.Z' vào tệp pom.xml. –

Các vấn đề liên quan