[英]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.