2013-06-21 52 views
0

我有使用JPA的簡單maven EJB模塊。這是我的persistance.xml文件使用JPA的EJB Maven模塊

<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無狀態Bean,我試圖從GroupTypes表中獲取所有屬性。這是我的bean的實現:

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:否EntityManager的持久性提供者命名的持久性。 我的persistance.xml文件放置在文件夾資源/ META-INF/persistance.xml中,如果我不使用bean,則此解決方案有效。有沒有人知道爲什麼這隻發生在我使用bean的情況下?

我使用的是Intellij 12.1.1,Oracle 11g,Glassfish 3.1服務器和JAVA 1.6。

回答

0

我解決了以下方法這個問題: 1.安裝的Hibernate插件在GlassFish(使用GlassFish更新工具) 2.在GlassFish加入加多寶連接池AmmPool與屬性:類名,用戶名,密碼的databaseName和url 3.關於glassfish添加jdbc資源jdbc/ _amm綁定連接池_AmmPool 4.更改persistence.xml文件 5.更改pom.xml文件 6.將以下庫複製到glassfish domains/domain1/lib文件夾: -antlr-2.7.7 -commons-collections-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-GA, -jta-1.1, -log4j-1.2.17, -Oracle-JDBC-11.1.0.6.0生產+,
-slf4j-api-1.6.1 -slf4j-log4j12-1.7.5

A也將這些庫複製到glassfish/lib floder中。

這是我的新persistance.xml文件:http://pastebin.com/xbEU9Tr0 這是我的pom.xml文件:http://pastebin.com/uEjhW36thttp://pastebin.com/xbEU9Tr0