我目前正在编写一组与一些旧的EJB2代码接口的EJB。作为其中的一部分,我有一个ejb-jar.xml
部署描述符,其中包含会话bean的resource-refs和ejb-refs。所有这些定义基本相同 - 只有会话bean的名称在它们之间有所不同。显然,这并不理想 - 每次添加新bean时,我都必须复制并粘贴一大块XML。
结构看起来像这样:
<ejb-jar
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/ejb-jar_3_1.xsd" version="3.1">
<enterprise-beans>
<session>
<ejb-name>/* redacted */</ejb-name>
<resource-ref>
<res-ref-name>/* redacted */</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Application</res-auth>
<lookup-name>/* redacted */</lookup-name>
</resource-ref>
<ejb-ref>
<ejb-ref-name>/* redacted */</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>/* redacted */</home>
<remote>/* redacted */</remote>
</ejb-ref>
/* about 20 more ejb-refs later... */
</session>
/* several near identical session beans here ... */
</ejb-jar>
有没有办法在多个定义中重复使用这些引用而不重复?或者,或者,有没有更好的方法来实现我失踪的相同最终结果?
答案 0 :(得分:0)
在我的特定场景中,我能够通过将EJB打包为WAR而不是普通的JAR文件来解决问题 - 这允许我在web.xml
中为整个应用程序提供引用,而不是而不是每个bean级别。