我使用JPA的简单maven EJB模块。这是我的persistance.xml文件
<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表中获取所有属性。这是我的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:没有名为Persistance的EntityManager的持久性提供程序。 我的persistance.xml文件放在文件夹resources / META-INF / persistance.xml中,如果我不使用bean,这个解决方案可以工作。有没有人知道为什么只有在我使用bean的情况下才会发生这种情况?
我使用的是Intellij 12.1.1,Oracle 11g,Glassfish 3.1服务器和JAVA 1.6。
答案 0 :(得分:0)
我通过以下方式解决了这个问题:
_AmmPool
,其属性为:className, username,password,databaseName and url
jdbc/__amm
_AmmPool
persistence.xml
档案pom.xml
档案将以下库复制到glassfish domains / domain1 / lib文件夹中:
A还将这些库复制到glassfish / lib floder中。
这是我新的persistance.xml文件:http://pastebin.com/xbEU9Tr0
这是我的pom.xml文件:http://pastebin.com/uEjhW36