我正在尝试更新最初用 Java6 编写的企业应用程序的小型 alpha 版本。现在我想使用:
- 爪哇 7
- JSF 最新
- 马文
- 带有 Glassfish 的 EJB 3.2
到目前为止,我可以毫无问题地在 Glassfish 上部署我的 EAR 文件。我的 webapp 可以加载,第一个 JSF 页面导航正常。而且我的 JSF 支持 bean 似乎也可以很好地加载我的无状态会话 bean。调试告诉我,我可以从一个 SSB 到另一个来自我的支持 bean。我缺少的最后一步也是最后一步是我的实体管理器和持久性。
我的班级被注释了@Stateless
,我正在使用:
@PersistenceContext(unitName = "myProjectPU")
protected EntityManager entityManager;
但实体管理器为空:(
我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="myProjectPU" transaction-type="JTA">
<jta-data-source>jdbc/myProject</jta-data-source>
<properties>
<property name="javax.persistence.schema-generation.create-database-schemas" value="true" />
</properties>
</persistence-unit>
</persistence>
有任何想法吗?persistence.xml 是否必须在 ear maven 模块内?现在它在 ejb maven 模块中,我使用实体管理器的类所在的位置。