我已经在WildFly 18服务器上部署了EJB。我希望(通过ActiveMQ Artemis)将消息发送到部署在远程Artemis 18服务器上的队列。是否可以使用注入、JCA和poole-connection-factory
远程Wildfly中的连接工厂和队列配置如下:
<subsystem xmlns="urn:jboss:domain:messaging-activemq:8.0">
...
<pooled-connection-factory name="remote-artemis" entries="java:/jms/remoteCF" connectors="remote-http-connector"/>
...
</subsystem>在远程服务器上,队列配置如下:
<subsystem xmlns="urn:jboss:domain:messaging-activemq:8.0">
...
<jms-queue name="WildFlyCookbookQueue" entries="java:/jms/queue/test java:jboss/exported/jms/queue/test"/>
...
</subsystem>更新
下面是我尝试将消息发送到远程Artermis (在远程wildfly中)的EJB:
@Stateless
public class MessageSender {
@Inject
@JMSConnectionFactory("java:/jms/remoteCF")
@JMSPasswordCredential(userName = "jmsuser", password = "jmsuser2020")
private JMSContext context;
@Resource(lookup = "java:/jms/queue/test")
private Queue queue;
public void sendMessage(String message) {
context.createProducer().send(queue, message);
}
}当我尝试部署包含此EJB的war时,我得到的错误消息是队列不存在。
谢谢
发布于 2020-04-21 03:04:45
是。可以将基于JCA的pooled-connection-factory注入在EJB18上运行的WildFly中,并向远程WildFly服务器发送一条JMS消息。
https://stackoverflow.com/questions/61329141
复制相似问题