繁体   English   中英

将MDB与JMS目标绑定的最佳方法

[英]Best way to tie MDB with JMS destination

我有一个消息驱动Bean

@MessageDriven(ejbName = "TestMDB", 
    destinationJndiName="test.QueueIn", destinationType = "javax.jms.Queue")
public class TestMDB extends GenericMessageDrivenBean implements
    MessageDrivenBean, MessageListener {
    .....
}

我想将直接目标引用“ test.QueueIn”替换为“ java:comp / env / jms / TestQueueIn”表示法。 这应该允许我在部署描述符中而不是在Java代码中指定MDB目标。 也就是说,我想在部署时而不是在编译时确定MDB目标。

这可能吗? 或者,是否有更好的方法来创建引用间接引用?

我找到了一种方法,尽管我不知道它是否理想。

@ResourceEnvRef(name="jms/RequestQueue", type="javax.jms.Queue", jndiName="test.QueueIn"),
@MessageDriven(ejbName = "TestMDB", destinationJndiName="java:comp/env/jms/RequestQueue", destinationType = "javax.jms.Queue")
public class TestMDB extends GenericMessageDrivenBean implements
    MessageDrivenBean, MessageListener {
    .....
}

@ResourceEnvRef中的jndiName是可选属性,因此您无需在代码中指定它。 但是,即使您这样做,它也仅用作默认值,您始终可以在(生成的)部署描述符中对其进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM