Я пытаюсь написать приложение Vaadin на платформе GAE с помощью JDO, и когда я хочу вызвать этот метод:Ошибка при принятии объекта настойчивый
public void createUser(String login, String password, String email) {
PersistenceManager pm = PMF.get().getPersistenceManager();
User user = new User(login, password, email);
try {
pm.makePersistent(user);
} finally {
pm.close();
}
}
Я получаю эту ошибку:
(...)Caused by: javax.jdo.JDOFatalUserException: A property named javax.jdo.PersistenceManagerFactoryClass must be specified, or a jar file with a META-INF/services/javax.jdo.PersistenceManagerFactory entry must be in the classpath, or a property named javax.jdo.option.PersistenceUnitName must be specified. NestedThrowables: javax.jdo.JDOUserException: You have either specified for this PMF to use a "persistence-unit" of "transactions-optional" (yet this doesnt exist!) or you called JDOHelper.getPersistenceManagerFactory with "transactions-optional" as the name of a properties file (and this doesnt exist in the CLASSPATH) at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:856) at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:1092) at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:914) at myapp.PMF.(PMF.java:8) ... 43 more Caused by: javax.jdo.JDOUserException: You have either specified for this PMF to use a "persistence-unit" of "transactions-optional" (yet this doesnt exist!) or you called JDOHelper.getPersistenceManagerFactory with "transactions-optional" as the name of a properties file (and this doesnt exist in the CLASSPATH) (...)
Я искал Google и нашел некоторые решения для этой проблемы, но никто не работает для моего приложения (или я делаю что-то неправильно). Для примера. this не работает. О, и у меня есть файл jdoconfig.xml в META-INF. Если у кого-то была схожая проблема, и он хотел бы поделиться своей мудростью, я был бы очень признателен.
EDIT: jdoconfig файл:
<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
<persistence-manager-factory name="transactions-optional">
<property name="javax.jdo.PersistenceManagerFactoryClass"
value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory" />
<property name="javax.jdo.option.ConnectionURL" value="appengine" />
<property name="javax.jdo.option.NontransactionalRead" value="true" />
<property name="javax.jdo.option.NontransactionalWrite"
value="true" />
<property name="javax.jdo.option.RetainValues" value="true" />
<property name="datanucleus.appengine.autoCreateDatastoreTxns"
value="true" />
</persistence-manager-factory>
</jdoconfig>
и вы не сказали нам о своем jdoconfig.xml или persistence.xml файл, и где они расположены – DataNucleus
я сказал: у меня есть jdoconfig.xml файл в META-INF. – user1173656