我正在使用JBoss 4.2.3并且我部署了两个名为triad-1.0.ear
和reportservices-1.0.ear
的耳朵,问题是我想在项目reportservices中使用项目三元组的实体管理器。这是JBoss遵循的架构:
triad-1.0.ear:
triad-core-1.0.jar:
META-INF:
MANIFEST.MF
components.xml
ejb-jar.xml
jboss.xml
persistence.xml
reportservices-1.0.ear:
reportservices-core-1.0.jar:
META-INF:
MANIFEST.MF
components.xml
ejb-jar.xml
jboss.xml
persistence.xml
这是我尝试在persistence.xml中使实体管理器在ear之间全局化:
<?xml version="1.0" encoding="UTF-8"?>
<!--
Attention: Generated code! Do not modify by hand!
Generated by: persistence.xml.vsl in andromda-ejb3-cartridge.
-->
<persistence
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_1_0.xsd"
version="1.0">
<persistence-unit name="triad">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/jdbc/triad</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
<property name="jboss.entity.manager.jndi.name" value="java:/triadFactory"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/triadFactory"/>
</properties>
</persistence-unit>
</persistence>
答案 0 :(得分:0)
我很抱歉,但在我看来这个问题没有多大意义(我甚至没有明白你的意思“公开persistence.xml”)。以防万一,有可能:
我的建议是用简单的英语解释你想做什么(暂时忘记技术细节)。
答案 1 :(得分:0)
我终于用注入解决了mi问题,你需要在persistence.xml中设置这个属性并检查jboss jmx控制台,在jdni视图的选项中如果注入是正确的,这里的属性是持久性的一个例子。 XML
<persistence 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_1_0.xsd" version="1.0">
<persistence-unit name="example">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/jdbc/example</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
<property name="jboss.entity.manager.jndi.name" value="java:/example"/>
<property name="jboss.entity.manager.factory.jndi.name" value="java:/example"/>
</properties>
</persistence-unit>
</persistence>`
允许注入的属性是“jboss.entity.manager.jndi.name”和“jboss.entity.manager.factory.jndi.name”
注意数据的名称与数据源的名称相同,但是他的jdni名称在数据源项目的xml中设置了这些名称。