Jakarta ee 在glassfish服务器上跨EAR共享(JPA)业务实体
我在glassfish 3.1.2实例中部署了几个EAR。我希望能够将be从EAR a中的类移交给EAR B中的类,这意味着类B可以更新be 这可能吗?如何配置persistence.xmls来实现这一点 我在web上找到的所有信息都集中在一个应用程序(ear)中的模块(jar、war)之间的共享上。我想在不同ear中的模块之间共享(ear B中的war A从ear D中的jar C获取BE) 更新: 我怀疑自己,我试图在这里实现的是好的设计或最佳实践。整个故事是,我正在将Glassfish 3上的一个应用程序从JEE5和Weblogic 10迁移到JEE6。它过去在旧环境中运行良好,无需任何特殊设置。现在Glassfish将传递给另一个EAR中的类的BE的所有值“为空”Jakarta ee 在glassfish服务器上跨EAR共享(JPA)业务实体,jakarta-ee,jpa,glassfish,java-ee-6,glassfish-3,Jakarta Ee,Jpa,Glassfish,Java Ee 6,Glassfish 3,我在glassfish 3.1.2实例中部署了几个EAR。我希望能够将be从EAR a中的类移交给EAR B中的类,这意味着类B可以更新be 这可能吗?如何配置persistence.xmls来实现这一点 我在web上找到的所有信息都集中在一个应用程序(ear)中的模块(jar、war)之间的共享上。我想在不同ear中的模块之间共享(ear B中的war A从ear D中的jar C获取BE) 更新: 我怀疑自己,我试图在这里实现的是好的设计或最佳实践。整个故事是,我正在将Glassfish 3
如果我把所有的罐子和战争都装在一只耳朵里,它运行得很好,但是我松开了预期的包装结构。我希望有一种方法可以避免移除两个组件的底层耦合。您可以将您的实体打包到一个实用程序jar中,并让两个耳朵都将这个jar包含在它们的lib文件夹中 对于每个persistence.xml,可以使用
元素来包含实体
比如说
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="xxx">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>xxx</jta-data-source>
<mapping-file>META-INF/orm.xml</mapping-file>
<jar-file>lib/entities.jar</jar-file>
<properties>
xxx
</persistence-unit>
</persistence>
org.hibernate.ejb.HibernatePersistence
xxx
META-INF/orm.xml
lib/entities.jar
xxx
之后,您可以使用远程ejb查找来传递实体
我不确定我是否会建议这样做。。您需要共享确切的实体吗?你不能使用dto并将持久性的责任委托给一个应用程序吗
希望有帮助 我会告诉你我有几个项目的项目结构。War和EJB模块由所有人共享 首先:必须创建一个项目库,在其中声明EJB远程接口和实用程序类(例如:clintLib.jar) second:在EJB模块中,必须将clientLib.jar用作lib。在那里添加您的实体 third:在war模块中,必须将clientLib.jar用作lib
这样,您就可以通过clientLib.jar中声明的远程接口从任何war访问EJB模块。EJB容器将提供使用transparent-to-you访问查找EJB实例的权限。我的应用程序结构是:3war1library项目1ejb项目谢谢你的提示。遗憾的是,这对我不起作用。你建议一个更好的设计当然是对的:)我只是希望有一个简单的方法。我不是试图在一只耳朵里分享罐子和战争,而是在两个分开的耳朵之间。