我有一个EJB-Project和一个JBoss 7.1服务器和一个PostgreSQL数据库 . 我想通过PersistenceContext获取一个Entitymanager,如下所示:
@PersistenceContext(name="PlayerService",unitName="PlayerService")
private EntityManager em;
persistence.xml中:
<persistence-unit name="PlayerService" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
...
我启动JBoss服务器,进入管理控制台并配置JDBC数据源 . 我将postgresql-9.3-1101.jdbc41.jar复制到服务器的deployment-Folder中,因此我可以在创建数据源时选择该驱动程序 . 数据源名称是PlayerService,JNDI路径是java:jboss / PlayerService . 我还将数据源作为JPA子系统中的默认数据源启用 .
em.getTransaction().begin();
仍然会抛出一个空指针,我猜是因为我尝试从服务器外部访问PersistenceContext(来自带有单独主函数的java类进行测试) . 我该怎么做才能让它发挥作用 . 它可以在服务器上部署的项目中运行吗?我有一种感觉,我错过了最后一步 .
1 回答
在单元测试中,您需要自己初始化EntityManager .