JCA Удаленная Очередь Wildfly Артемида - PullRequest
0 голосов
/ 20 апреля 2020

EJB развернут на сервере WildFly 18. Я хочу отправить сообщение в очередь, развернутую на удаленном сервере WildFly 18 (через ActiveMQ Artemis). Возможно ли это с помощью инъекций и 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>

ОБНОВЛЕНИЕ

Вот мой EJB, пытающийся отправить сообщение на удаленный Artermis (внутри удаленного wildfly):

@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, я получаю сообщение об ошибке о том, что очередь не существует.

Спасибо

1 Ответ

0 голосов
/ 20 апреля 2020

Да. Можно добавить pooled-connection-factory на основе JCA в ваш EJB, работающий на WildFly 18, и отправить сообщение JMS на удаленный сервер WildFly.

...