【问题标题】:How to reference EJBs from another EJB in Oracle Workshop for WebLogic?如何在 Oracle Workshop for WebLogic 中从另一个 EJB 引用 EJB?
【发布时间】:2012-03-28 17:42:45
【问题描述】:

我需要有关如何在 Weblogic 开发环境中操作的帮助(Oracle Workshop for WebLogic 10.3)。

我在一个 .jar 中有一个会话 bean,我需要从另一个 .jar 中的消息驱动 bean 中使用它。我想在查找会话 bean 时使用“java:comp/env/...”表示法。

jndiCtx = new InitialContext();
workerHome = (WorkerSBLocalHome) jndiCtx.lookup("java:comp/env/ejb/WorkerSBLocalHome");
WorkerSBLocal worker = workerHome.create();

因此我需要在MDB组件部署描述符(ejb-jar.xml)中创建ejb引用:

<ejb-local-ref>
    <ejb-ref-name>ejb/WorkerSBLocalHome</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>test.WorkerSBLocalHome</local-home>
    <local>test.WorkerSBLocal</local>
    <ejb-link>WorkerEJB.jar#WorkerSB</ejb-link>
</ejb-local-ref>

这有效(经过测试)。 问题是,生成了 MDB 部署描述符,每次我编辑 MDB 源时,Oracle Workshop 都会使用类注释重新生成部署描述符,并覆盖我添加的内容。

所以我的问题是:在使用 Oracle Workshop for WL 时,从 MDB 引用 EJB 的最佳方式是什么?或者,在使用 ejb 注释时,除了我上面概述的方法之外,还有其他首选方法来创建 bean 引用吗?还是应该将我的 bean 引用放在其他地方?

【问题讨论】:

    标签: jakarta-ee ejb weblogic deployment-descriptor


    【解决方案1】:

    似乎无法手动编辑生成的部署描述符(如果您不想放弃更改)。但是,您仍然可以使用注释指定其内容。

    @EjbLocalRef(name="ejb/WorkerSBLocalHome", type=Constants.RefType.SESSION, 
        home="test.WorkerSBLocalHome", local="test.WorkerSBLocal",
        link="WorkerEJB.jar#WorkerSB")
    @MessageDriven(ejbName = "HelloWorldMDB", 
        destinationJndiName="jms.RequestQueue", destinationType = "javax.jms.Queue")
    public class Test extends GenericMessageDrivenBean implements
        MessageDrivenBean, MessageListener {
        .....
        jndiCtx = new InitialContext();
        workerHome = (WorkerSBLocalHome) jndiCtx.lookup("java:comp/env/ejb/WorkerSBLocalHome");
        WorkerSBLocal worker = workerHome.create();
        .....
    }
    

    这种方法仍然强制您在代码中指定具体的 jndi 名称,但您始终可以在部署时修改生成的部署描述符内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2014-08-23
      • 2013-01-05
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多