Я разработал приложение для Tomcat 7.0, которое использует Datanucleus / JDO для доступа к базе данных. В настоящее время у меня есть свойства соединения JDO, хранящиеся в «datanucleus.properties», расположенном в самом приложении. Соединение работает нормально, но я хотел бы сохранить информацию о соединении как JNDI, чтобы она была на сервере и больше не использовалась в самой войне (мне всегда приходится заменять файл в войне при его удаленном развертывании).
Я попробовал следующее:
Создание в web.xml приложения (jdbc / ConnectionDB)
В «Server.xml» я попытался добавить следующий контекст моего приложения
<Resource name="jdbc/ConnectionDB" auth="Container" type="javax.jdo.PersistenceManagerFactory" /> <ResourceParams name="jdbc/ConnectionDB
<parameter>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.datanucleus.api.jdo.JDOPersistenceManagerFactory</value>
</parameter>
<parameter>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/TomcatTest</value>
</parameter>
...
Затем я пытаюсь создать новый PMF со следующим синтаксисом:
Context context = null;
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory ("java: comp / env / jdbc / ConnectionDB", контекст);
Когда я запускаю свое приложение, я получаю javax.jdo.JDOUserException: вы либо указали для этого PMF, чтобы использовать «единицу постоянства» «datanucleus.properties» (пока этого не существует!)
Я действительно не понимаю, что не так в моей настройке.
С уважением,
Marcel