JPA Entities作为wildfly中的模块在webapp和EJB部署中共享

时间:2015-12-28 18:29:24

标签: jpa jboss wildfly

我需要将项目分成几个maven项目并将其部署在WildFly服务器中。这是被请求的组织:

  • com.mycompany.entity:此项目包含JPA Annotated POJO。它是一个注册为Wildfly module
  • 的jar(不是ejb或war)
  • com.mycompany.dataservice:只是一堆DAO接口,再次将单个jar注册为Wildfly模块。取决于com.mycompany.entity
  • com.mycompany.dataserviceImpl:实现DAO接口并注册JNDI资源的EJB应用程序。取决于com.mycompany.entitycom.mycompany.dataservice
  • com.mycompany.web:通过JNDI名称注入EJB的Web应用程序。取决于com.mycompany.entitycom.mycompany.dataservice

我在persistence.xml项目中使用hibernate-entitymanager获得了com.mycompany.dataserviceImpl文件。

<?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="mycompanyPU" transaction-type="JTA">
        <jta-data-source>java:/jboss/datasources/ExampleDS</jta-data-source>
        <class>com.mycompany.entity.MyEntity</class>
    </persistence-unit>
</persistence>

到目前为止,我已经在wildfly服务器中注册了com.mycompany.entitycom.mycompany.dataservice个模块。此外,我已部署了com.mycompany.dataserviceImplcom.mycompany.web个应用程序。

但在浏览网络应用时,它会抛出:javax.ejb.EJBException: java.lang.IllegalArgumentException: Not an entity: class com.mycompany.entity.MyEntity

这种分离是否可行?当只有两个项目(EJB和Web)时,一切都有效。

0 个答案:

没有答案