【问题标题】:spring ejb multiple contextspring ejb 多上下文
【发布时间】:2014-11-20 03:02:34
【问题描述】:

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

每个 ejb jar 都有一个 beanRefContext.xml,它又引用了一个配置 xml,其中包含为该 ejb 项目定义的 bean。每个 ejb 模块都有自己的 daos 和服务...这些服务自动装配到无状态 EJB 中。

战争还有 [servlet-name]-servlet.xml,其中定义了 bean 以及注入到 Controller 类中的条目。

现在将它们打包在一个 EAR 中会在部署时失败,因为有多个 beanRefContext.xml 文件。我该如何做到这一点?所以作为 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 模块具有“控制器”类,这些类利用来自 mod1-ejb 和 mod2-ejb 的 ejb。如何在单个 EAR 中完成这项工作?使用单个 EJB 模块和 WAR 模块就可以了,因为只有一个 beanRefContext.xml

每个 ejb 模块也使用它自己的资源包,例如 error.properties、message.properties 等...

【问题讨论】:

    标签: spring ejb war


    【解决方案1】:

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

    引用 beanRefContext 中的各个上下文配置文件
    <constructor-arg>
            <list>
                <value>mod1-context.xml</value>
                <value>mod2-context.xml</value>
            </list>
    <constructor-arg>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      相关资源
      最近更新 更多