SpringEJB多上下文

SpringEJB多上下文,spring,ejb,war,Spring,Ejb,War,我有一个场景涉及多个EJB JAR和一个WAR,它们需要打包在一个EAR中。这个项目使用Spring。最初,ejb JAR是单独部署的,战争也是如此 每个EJBJAR都有一个beanRefContext.xml,它反过来引用一个配置xml,该配置xml为该ejb项目定义了bean。每个ejb模块都有自己的DAO和服务……这些服务自动连接到无状态ejb中 war还有[servlet name]-servlet.xml,其中定义了bean以及注入控制器类的条目 现在,由于存在多个beanRefCon

我有一个场景涉及多个EJB JAR和一个WAR,它们需要打包在一个EAR中。这个项目使用Spring。最初,ejb JAR是单独部署的,战争也是如此

每个EJBJAR都有一个beanRefContext.xml,它反过来引用一个配置xml,该配置xml为该ejb项目定义了bean。每个ejb模块都有自己的DAO和服务……这些服务自动连接到无状态ejb中

war还有[servlet name]-servlet.xml,其中定义了bean以及注入控制器类的条目

现在,由于存在多个beanRefContext.xml文件,在单个EAR中打包这些内容在部署时失败。我如何做到这一点?因此,作为POC:

mod1-ejb.jar具有beanRefContext.xml-加载mod1-context.xml(定义在mod1中使用的bean)

mod2-ejb.jar具有beanRefContext.xml-加载mod2-context.xml(定义在mod2中使用的bean)

mod-web.war有webapp servlet.xml…war模块有“Controller”类,这些类利用来自mod1ejb和mod2ejb的ejb。我怎样才能在一只耳朵里完成这项工作?使用单个EJB模块和WAR模块就可以了,因为只有一个beanRefContext.xml


此外,每个ejb模块都使用自己的资源包,如error.properties、message.properties等。

好的。事实证明,您需要确保只加载一个beanRefContext.xml。因此,在任何ejb JAR中都有一个beanRefContext.xml,并使用

<constructor-arg>
        <list>
            <value>mod1-context.xml</value>
            <value>mod2-context.xml</value>
        </list>
<constructor-arg>

mod1-context.xml
mod2-context.xml