我的方案涉及多个EJB jar和需要打包在单个EAR中的WAR。这个项目使用Spring。最初ejb罐子是单独部署和战争。
每个ejb jar都有一个beanRefContext.xml,它反过来引用一个config xml,它具有为该ejb项目定义的bean。每个ejb模块都有它自己的daos和服务......服务被自动连接到无状态EJB中。
war还有[servlet-name] -servlet.xml,它定义了bean以及注入Controller类的条目。
现在将它们整合在一个EAR中会因部署而失败,因为有多个beanRefContext.xml文件。我该如何做到这一点?所以作为POC:
mod1-ejb.jar有beanRefContext.xml - 加载mod1-context.xml(bean定义为在mod1中使用)
mod2-ejb.jar有beanRefContext.xml - 加载mod2-context.xml(定义为在mod2中使用的bean)
mod-web.war有webapp-servlet.xml ... war模块有' Controller'使用mod1-ejb和mod2-ejb中的ejbs的类。如何在单个EAR中完成这项工作?使用单个EJB模块和WAR模块,它很好,因为只有一个beanRefContext.xml
此外,每个ejb模块都使用它自己的资源包,如error.properties,message.properties等......
答案 0 :(得分:0)
好。事实证明,您需要确保只加载一个beanRefContext.xml。所以在任何ejb jar中都有一个beanRefContext.xml,并使用
引用beanRefContext中的单个上下文配置文件<constructor-arg>
<list>
<value>mod1-context.xml</value>
<value>mod2-context.xml</value>
</list>
<constructor-arg>