如何使用quarkus和apache camel向weblogic服务器发送队列?

w6lpcovy  于 2023-04-06  发布在  Apache
关注(0)|答案(1)|浏览(140)

我正在使用pom.xml中的依赖项

<dependency>
    <groupId>org.amqphub.quarkus</groupId>
    <artifactId>quarkus-qpid-jms</artifactId>
</dependency>

我的yml属性文件

quarkus:
   qpid-jms: amqp:url:port
   username: username
   password: password

我有一门课就像

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.jms.ConnectionFactory;
import javax.jms.JMSContext;
import javax.jms.JMSRuntimeException;
import javax.jms.Session;
import org.apache.camel.Exchange;
import org.apache.camel.Proccesor;

@ApplicationScoped
public class JMSProducer implements Processor {
    @Inject
    ConnectionFactory connectionFactory;

    @Override
    public void process(Exchange exchange) throws Exception {
        try (JMSContext context = connectionFactory.createContext(Session.AUTO_ACKNOWLEDGE)){
            context.createProducer().send(context.createQueue("my_queue"), exchange.getMessage().getBody(String.class));
        } catch (JMSRuntimeException ex) {}
    }
}

在此之后,我在我的apache camel路由的一个进程中将这个类称为bean。
我是新手,希望你能帮助我。

amrnrhlw

amrnrhlw1#

如果你想使用Camel和AMQP来生成消息到队列,那么你可以使用camel-quarkus-amqp扩展。它使用quarkus-qpid-jms。你可以像这样为它添加一个依赖项。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-amqp</artifactId>
</dependency>

然后在application.yml中定义连接配置。

quarkus:
  qpid-jms:
    url: your connection url
    username: your username
    password: your password

生成消息到队列的简单Camel路由可能如下所示。

public class Routes extends RouteBuilder {

    public void configure() throws Exception {
        from("direct:sendMessage")
                .to("amqp:queue:myQueue");
    }
}

注意:要使用direct端点,您需要将camel-quarkus-direct添加为依赖项。
Camel & Camel Quarkus文档中有更多信息:
https://camel.apache.org/camel-quarkus/2.16.x/reference/extensions/amqp.html
https://camel.apache.org/components/3.20.x/amqp-component.html

相关问题