TomEE共享不同应用程序之间的持久性

时间:2013-11-06 19:16:07

标签: java jpa java-ee tomee openejb

假设我有一个带有persistence.xml配置和jpa实体的jar。 我希望在不同的应用程序之间共享相同的持久性单元。

例如,部署war应用程序并注入相同的持久性单元(其他应用程序使用)。

@PersistenceContext(unitName="MySharedPersistence")
private EntityManager entityManager;    

我不能考虑将所有应用程序打包到ear文件中,因为我想在重新上载应用程序时启动并运行其他应用程序(重新上载的应用程序使用已部署的应用程序中的一些远程ejbs并使用相同的持久性unti如上所述)。

这个问题有解决方案吗?

提前谢谢。

编辑:可能不建议是否有相同结果的相应试用?

1 个答案:

答案 0 :(得分:0)

您可以将实体类和persistence.xml放在jar中,并在所有项目中重用此jar。只要您还包含beans.xml文件以及persistence.xml,它就可以正常使用。然后,您应该能够在使用此jar文件的任何项目中注入持久性上下文。

您需要beans.xml文件才能通过容器进行自动发现。作为参考,以下是beans.xml文件的外观:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>