简体   繁体   English

在 Thorntail 中使用 ActiveMQ 配置 JMS

[英]Configure JMS with ActiveMQ in Thorntail

I have a little issue about configuring JMS on Thorntail.我有一个关于在 Thorntail 上配置 JMS 的小问题。 In my project for development purpose I'm using Wildfly, but for remote server, we are using (my team) IBM Portal.在我用于开发目的的项目中,我使用 Wildfly,但对于远程服务器,我们使用(我的团队)IBM Portal。 I upgraded the local server from Wildfly to Thorntail and after I want to launch my app locally (using maven), it crashed.我将本地服务器从 Wildfly 升级到 Thorntail,在我想在本地启动我的应用程序(使用 maven)后,它崩溃了。 I looked into logs and I found that it gives my:我查看了日志,发现它提供了我的:

2019-12-04 10:49:50,957 ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("add") failed - address: (("deployment" => "myproject.war")) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.myproject.env.jms.notification"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.naming.context.java.module.myproject.env.\"myproject.notifications.service.impl.JmsNotificationServiceImpl\".connectionFactory is missing [jboss.naming.context.java.module.myproject.env.jms.notification]",
        "jboss.naming.context.java.module.myproject.env.\"myproject.notifications.service.impl.JmsNotificationServiceImpl\".topic is missing [jboss.naming.context.java.module.myproject.env.jms.notification]"
    ]
}
2019-12-04 10:49:50,994 ERROR [org.jboss.as.server] (main) WFLYSRV0021: Deploy of deployment "myproject.war" was rolled back with the following failure message: 
{
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.myproject.env.jms.notification"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.naming.context.java.module.myproject.env.\"myproject.notifications.service.impl.JmsNotificationServiceImpl\".connectionFactory is missing [jboss.naming.context.java.module.myproject.env.jms.notification]",
        "jboss.naming.context.java.module.myproject.env.\"myproject.notifications.service.impl.JmsNotificationServiceImpl\".topic is missing [jboss.naming.context.java.module.myproject.env.jms.notification]"
    ]
}

In our local environment we didn't configured any queue for JMS purposes, becouse our main queue mechanism was on remote server (IBM Portal).在我们的本地环境中,我们没有为 JMS 配置任何队列,因为我们的主要队列机制是在远程服务器(IBM 门户)上。 There is some code we are using:我们正在使用一些代码:

public class JmsNotificationServiceImpl implements JmsNotificationService {

    @Resource(lookup = "jms/notificationCF")
    private ConnectionFactory connectionFactory;

    @Resource(lookup = "jms/topic/notification")
    private Topic topic;

    @Override
    public void send(String string) throws Exception {
        Connection connection = null;
        try {
            connection = connectionFactory.createConnection();
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            MessageProducer producer = session.createProducer(topic);

            log.info("Sending JMS message to topic...");
            producer.send(session.createObjectMessage(string));
            log.info("Message sent succesfull.");
        } catch (JMSException e) {
            throw new Exception("Error while creation or sending jms message", e);
        }
    }

}

I found that there is a build in ActiveMQ in Thorntail, but I don't really know how to configure ConnectionFactory and Topic in ActiveMQ.发现Thorntail里面有一个ActiveMQ的build,但是我真的不知道如何在ActiveMQ中配置ConnectionFactory和Topic。 Could anyone help me to understand where put some configuration and how to configure it?任何人都可以帮助我了解在哪里放置一些配置以及如何配置它?

Minimalistic project-defaults.yml That allows your thorntail instance to connect to an remote Message Broker简约的 project-defaults.yml 允许您的 thorntail 实例连接到远程消息代理

swarm:
  network:
    socket-binding-groups:
      standard-sockets:
        outbound-socket-bindings:
          remote-activemq-socket-binding:
            remote-host: 127.0.0.1
            remote-port: 61616
  messaging-activemq:
    servers:
      default:
        remote-connectors:
          remote-activemq-connector:
            socket-binding: remote-activemq-socket-binding
        pooled-connection-factories:
          remote-connection-factory:
            user: myuser
            password: otherpassword
            connectors:
              - remote-activemq-connector
            entries:
              - 'java:/jms/remote-mq'
              - 'java:/DefaultJMSConnectionFactory'
        jms-queues:
          session-tracking-queue:
            entries:
              entry: 'java:/jms/queue/testQueue'

Requires the following dependency to be included:需要包含以下依赖项:

<dependency>
    <groupId>io.thorntail</groupId>
    <artifactId>messaging</artifactId>
</dependency>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM