spring ejb multiple context

时间:2014-11-20 03:02:34

标签: spring ejb war

我的方案涉及多个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等......

1 个答案:

答案 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>