我正在使用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。
我是新手,希望你能帮助我。
1条答案
按热度按时间amrnrhlw1#
如果你想使用Camel和AMQP来生成消息到队列,那么你可以使用
camel-quarkus-amqp
扩展。它使用quarkus-qpid-jms
。你可以像这样为它添加一个依赖项。然后在
application.yml
中定义连接配置。生成消息到队列的简单Camel路由可能如下所示。
注意:要使用
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