Я разрабатываю динамический веб-проект (Java EE) с использованием JSF, PrimeFaces, JPA и работает на Tomcat 7. Разработка проекта основана на http://www.simtay.com/simple-crud-web-application-with-jsf-2-1-primefaces-3-5-maven-and-jpa/
Теперь я разрабатываю часть программного обеспечения JPA. В прошлом, когда я разработал некоторые мелочи (как упражнения) в Java SE, я имел обыкновение использовать следующие свойства базы данных:Как адаптировать файл persistence.xml для подключения JPA к базе данных JDBC/MySQL в среде Java EE (Tomcat + JSF)
jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=password
Но сейчас я учусь JPA на Java EE.
В книге "Pro JPA 2 Овладение торговли Java Настойчивость API", глава 3, пункт "Упаковка It Up" вы можете прочитать:
В среде Java EE, многие свойства требуются в Файл persistence.xml для Java SE может быть опущен. В листинге 3-32 вы смотрите файл persistence.xml из листинга 2-11, преобразованный для развертывания как часть приложения Java EE. Вместо свойств JDBC для создания соединения мы объявляем, что администратор объекта должен использовать имя источника данных «jdbc/EmployeeDS». Если источник данных был определен как доступный в пространстве имен приложений вместо контекста именования локального компонента, вместо этого вместо используйте имя источника данных «java: app/jdbc/EmployeeDS». Атрибут типа транзакции также был удален, чтобы достоящий блок по умолчанию использовал JTA. Сервер приложений будет автоматически найти классы сущностей, поэтому даже список классов имеет . Этот пример представляет собой идеальную минимальную конфигурацию Java EE . Поскольку бизнес-логика, использующая это постоянство , реализована в сеансовом компоненте без состояния, файл persistence.xml обычно будет находиться в каталоге META-INF соответствующего EJB JAR .
Листинг 3-32. Определение единицы сохранения в Java EE
<persistence>
<persistence-unit name="EmployeeService">
<jta-data-source>jdbc/EmployeeDS</jta-data-source>
</persistence-unit>
</persistence>
Листинг 2-11. Элементы в persistence.xml Файл
<persistence>
<persistence-unit name="EmployeeService" transaction-type="RESOURCE_LOCAL">
<class>examples.model.Employee</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527 EmpServDB;create=true"/>
<property name="javax.persistence.jdbc.user" value="APP"/>
<property name="javax.persistence.jdbc.password" value="APP"/>
</properties>
</persistence-unit>
</persistence>
Мой вопрос: как я могу адаптировать общий файл persistence.xml в среде Java EE для подключения к базе данных MySQL/JDBC, используя свойства Я введенные в верхней части сообщение?
Tomcat как баребон JSP/контейнер для сервлетов вряд ли можно считать «средой Java EE». Он вообще не поддерживает транзакции, управляемые контейнером (JTA), что вам в конечном итоге необходимо. Реальные Java EE-контейнеры, такие как Glassfish, JBoss AS и TomEE, поддерживают JTA (и JPA, EJB, JSF и т. Д. И т. Д.). На «простом» Tomcat вам необходимо установить JTA отдельно (например, при установке JSF и JPA отдельно). Googling «install jta tomcat» должен давать достаточные советы. Или просто перейдите в полноценный контейнер Java EE, так что вам не нужно каждый раз устанавливать свободные артефакты Java EE. – BalusC
Мне не нравится TomEE, у меня было много неприятностей. В тот момент, когда я отказался от его использования, он не начинался. Мне нравится больше импортировать библиотеки в Tomcat. После просмотра http://stackoverflow.com/questions/2552612/how-to-use-jta-support-in-tomcat-6-for-hibernate я начал изучать, как использовать jbossts-full, чтобы мой проект правильно использовал JTA. Если вы поместите свой предыдущий комментарий в качестве ответа, я дам вам зеленый знак V –