2016-01-19 4 views
0

Я пытаюсь настроить проект JavaEE с помощью IntelliJ IDEA.Persistence.XML JavaEE с EJB и Intellij

моя конфигурация:

  • IDE Intellij (JetBrains)
  • Glassfish (Контейнер EJB)
  • JPA лица (поставщик Hibernate)
  • База данных с WAMP (настраивается в persistence.xml)

К сожалению, когда я запускаю свой проект, отображается страница 404: EJBTransac tionRolledbackException.

я не понимаю, это исключение или эту проблему ... может быть, это мой файл persistence.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> 
<persistence-unit name="PU" transaction-type="JTA"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <properties> 
     <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 
     <property name="hibernate.connection.user" value="root" /> 
     <property name="hibernate.connection.password" value="root" /> 
     <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/supbartering" /> 
     <property name="hibernate.hbm2ddl.auto" value="update" /> 
    </properties> 
</persistence-unit> 
</persistence> 

и я использую его с:

@PersistenceContext(unitName = "PU") 
private EntityManager mEntityManager; 

Это первый раз, когда я используя Intellij с проектом JEE и сервером GlassFish, но я не могу достичь хорошей конфигурации.

+1

Вы можете опубликовать полное исключение? – soorapadman

+1

Вы тестировали с помощью 'transaction-type =" JTA "' вместо "JPA"? Проверьте: http://stackoverflow.com/questions/27713599/javax-ejb-ejbexception-java-lang-illegalstateexception-unable-to-retrieve-entit?lq=1 – Baderous

+0

@Baderous, это уже JTA: s ... Ошибка знак равно –

ответ

1

Вы используете свойства локального источника данных типа Hibernate, но вы утверждаете, что хотите использовать транзакции JTA. Это непоследовательно. Смотрите раздел 8.2.1.2 в спецификации JPA

Атрибут транзакций типа используется для указания того, что объектные менеджеры, предоставляемых диспетчер объектов завода для блока живучести должны быть менеджерами сущностей JTA или ресурсы локального объекта менеджеры. Значение этого элемента - JTA или RESOURCE_LOCAL. Тип транзакции JTA предполагает, что будет предоставлен источник данных JTA - либо как , указанный элементом элемента jta-data-source, либо предоставленный контейнером. В целом, в средах Java EE тип транзакции RESOURCE_LOCAL предполагает, что будет предоставлен источник данных, не относящийся к JTA. В среде Java EE, если этот элемент не указан, по умолчанию является JTA. В среде Java SE, если этот элемент не указан, по умолчанию RESOURCE_LOCAL.

Так что вы либо использовать JTA, определить источник данных JTA внешне, и указать «jtaDataSource» в persistence.xml (и удалить URL/пользователь/пароль/драйвера), или вы используете RESOURCE_LOCAL сделки и определить источника данных через URL-адрес URL-адреса/пользователя/пароля/драйвера (и использовать стандартные свойства javax.persistence, такие как this link).

+0

Как я могу создать локальный источник данных в IntelliJ IDEA? ти. –

Смежные вопросы