Я разработал приложение на 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 со следующим синтаксисом:
контекст контекста = ноль; PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("java:comp/env/jdbc/ConnectionDB",context);
Когда я запускаю свое приложение, я получаю javax.jdo.JDOUserException: вы либо указали для этого PMF использование «единицы сохранения» «datanucleus.properties» (но этого не существует!)
Я не очень понимаю, что не так в моей настройке.
С уважением,
Марсель