0
我有一个EJB-Project和一个JBoss 7.1服务器和一个PostgreSQL数据库。我想通过PersistenceContext这样获得的EntityManager:JBoss 7.1数据源JDBC 4.1 Java持久性竞争
@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复制到服务器的部署文件夹中,以便在创建数据源时选择该驱动程序。数据源名称是PlayerService,JNDI路径是java:jboss/PlayerService。我还将该数据源作为JPA子系统中的默认数据源。
em.getTransaction().begin();
仍然抛出一个空指针,我猜是因为我尝试(使用一个单独的主功能测试从一个Java类)访问PersistenceContext服务器之外。我需要做些什么才能做到这一点。它会从服务器上的已部署项目中运行吗?我感觉我错过了最后一步。
与JDBC或postgresql不相关,但与JPA相关,因此标记为这样。 – eis