我的应用程序中有这样的MDB
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "java:jboss/exported/jms/queue/TestQueue"),
@ActivationConfigProperty(propertyName = "messageSelector", propertyValue = "source = 'client'")})
public class JmsReceiver implements MessageListener {
@Override
public void onMessage(Message message) {
// .......
}
}
问题是队列创建的方式。我记得在Wildfly 16中,仅用MDB部署应用程序就足够了,并且该队列可以以JNDI名称jms/queue/TestQueue
远程使用,但是在Wildfly 18中,只有在我在服务器控制台中创建了具有适当名称的队列后,该队列才开始工作。
队列创建在Wildfly和ActiveMQ中的工作原理如何?
我建议您将jms目标定义xml文件添加到部署中。参见https://docs.jboss.org/author/display/WFLY10/Messaging+configuration示例