我有两个项目(X,Y),其中项目 Y 依赖于项目 X,我想在 Payara 5 中部署项目 Y 的 .ear 文件(其中有 Y war 文件 + Y jar 文件 + X jar 文件),而部署我收到以下错误
" 调用类 org.glassfish.persistence.jpa.JPADeployer 准备方法 java.lang.RuntimeException 时出现异常:无法解析对应于 persistence-context-ref-name [com.abc.bcd.def.efg.dao 的持久性单元.AbstractDAO/em] 在名为 [Y.war] 的模块范围内。请验证您的应用程序。”
项目 X(peristence.xml):
<persistence-unit name="x_pu">
<jta-data-source>x-data-source</jta-data-source>
<class>com.abc.bcd.def.efg.entities.AbstractEntity</class>
项目 Y(persistence.xml)
<persistence-unit name="y_pu">
<jta-data-source>y-data-source</jta-data-source>
<class>com.abc.bcd.def.efg.entities.AbstractEntity</class>
并且如下所述,我在 X 项目的 theAbstractDAO.java 中定义了 @Persistencecontext 注释(在 error--peristence-context-ref-name [com.abc.bcd.def.efg.dao.AbstractDAO/em] 中提到)。
public abstract class AbstractDAO<T extends AbstractEntity> implements IDAO<T> {
@PersistenceContext
protected EntityManager em;
我尝试了不同的方法(比如在@Persistencecontext 之后定义单元名并在X 项目的web.xml 中定义相同),但没有任何效果。谁能帮我解决问题?