我将 jms 与 jboss/wildfly (jee6) 一起使用。
可以使用以下方法轻松注入 JMS 队列:
@Resource(name="java:jboss/exported/jms/queue/queuename")
private Queue myQueue;
现在我想实现一个中央无状态 Bean,它可以注入所有队列,并提供一个字符串参数化方法以类似工厂的方式检索队列:
@Resource(name="java:jboss/exported/jms/queue/queuename1")
private Queue myQueue1;
@Resource(name="java:jboss/exported/jms/queue/queuename2")
private Queue myQueue2;
public Queue getQueueIWant(String identifier) {
if("IdentifyingString".equals(identifier))
{ return myQueue1; }
if...
}
在另一个 Bean 中,这个“FactoryBean”被注入:
@EJB
private MyQueueFactory queueFactory;
并且可以很容易地使用:
...
Queue queue = queueFactory.getQueueIWant("AIdentifier");
producer = session.createProducer(queue);
...
检索到的 Queue 实例将用于将消息发送到队列 (MessageProducer) 并在不同的位置 (Beans) 检索它们 (MessageConsumer)。我已经尝试过这个实现,它似乎工作。
我的问题是有人看到这有什么问题吗?这会导致不稳定吗?我应该改用 jndiLookup 吗?有没有更好/更简单的方法?或者这很好而且可能:-)?
谢谢菲利普