2013-06-21 2 views
0

У меня есть простой модуль EJB maven с использованием JPA. Это мой persistance.xml файлМодуль EJB Maven с использованием JPA

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> 
    <persistence-unit name="Persistence"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <mapping-file>GroupTypes.xml</mapping-file> 
     <properties> 
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@127.0.0.1:1521:E"/> 
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/> 
      <property name="hibernate.connection.username" value="username"/> 
      <property name="hibernate.connection.password" value="password"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

Я использую EJB Stateless Bean, и я пытаюсь получить все атрибуты из GroupTypes таблицы. Это моя реализация боб:

public class TestBean 
{ 

    private GroupTypes GroupTypes; 
    private EntityManagerFactory entityManagerFactory; 
    private EntityManager entityManager; 

    @WebMethod (operationName = "justTesting") 
    public boolean justTesting(@WebParam (name = "param") String value) 
    { 
     try 
     { 
      entityManagerFactory = Persistence.createEntityManagerFactory("Persistance"); 
      entityManager = entityManagerFactory.createEntityManager(); 
      Query query = entityManager.createQuery("Select name from GroupTypes"); 
      List<AmmEdGroupTypes> result = query.getResultList(); 
      return true; 

     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
      return false; 
     } 
    } 
} 

Когда я пытаюсь вызвать этот метод я получаю Exeption: javax.persistence.PersistenceException: Нет поставщик Persistence для EntityManager имени Настойчивость. Мой файл persistance.xml помещается в ресурсы папки/META-INF/persistance.xml, и если я не использую bean-компонент, это решение работает. Кто-нибудь знает, почему это происходит только в том случае, если я использую bean-компонент?

Я использую Intellij 12.1.1, Oracle 11g, сервер Glassfish 3.1 и JAVA 1.6.

ответ

0

Я решил эту проблему следующим образом: 1. Установлен спящий режим надстройку на GlassFish (с использованием GlassFish инструмента обновления) 2. На GlassFish добавлены JDB пула соединений AmmPool со свойствами: Classname, имя пользователя, пароль, Databasename и URL 3. На GlassFish добавлены JDBC ресурсов JDBC/ _amm связывание с пула соединений _AmmPool 4. Изменены persistence.xml файл 5. Измененный файл pom.xml 6. скопировал следующие библиотеки в GlassFish домены/domain1/Lib папки : -antlr-2.7.7 -общественные коллекции-3.2.1, -dom4j-1.6.1, -ejb3-persistence-1.0.2.GA, -hibernate3-maven-plugin-3.0, -hibernate-commons-annotations-4.0.2.Final, -hibernate-core-4.2.2.Final, - hibernate-entitymanager-4.2.2.Final, -javassist-3.15.0-Г.А., -jta-1,1, -log4j-1.2.17, -oracle-11.1.0.6.0-JDBC-производственное +
-slf4j-api-1.6.1 -slf4j-log4j12-1.7.5

A также скопировал эти библиотеки в флорист-факел/lib.

Это мой новый persistance.xml файл: http://pastebin.com/xbEU9Tr0 И это мой pom.xml файл: http://pastebin.com/uEjhW36thttp://pastebin.com/xbEU9Tr0