第 2 章 Camel Quarkus 扩展参考
本章提供了红帽构建的 Apache Camel for Quarkus 的使用信息。
2.1. AMQP 复制链接链接已复制到粘贴板!
使用 Apache QPid 客户端与 AMQP 协议的消息传递。
2.1.1. 什么是内部 复制链接链接已复制到粘贴板!
-
AMQP 组件, URI 语法:
amqp:destinationType:destinationName
有关用法和配置详情,请参阅上述链接。
2.1.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建新项目
或者将协调添加到现有项目中:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-amqp</artifactId>
</dependency>
2.1.3. 使用方法 复制链接链接已复制到粘贴板!
2.1.3.1. 使用 org.w3c.dom.Node的消息映射 复制链接链接已复制到粘贴板!
Camel AMQP 组件支持 jakarta.jms.Message 和 org.apache.camel.Message 之间的消息映射。当希望转换 org.w3c.dom.Node 的 Camel 消息正文类型时,您必须确保 classpath 上存在 camel-quarkus-xml-jaxp 扩展。
2.1.3.2. 对 jakarta.jms.ObjectMessage 的原生模式支持 复制链接链接已复制到粘贴板!
将 JMS 消息有效负载作为 jakarta.jms.ObjectMessage 发送时,您必须注解要注册的相关类,以便使用 @RegisterForReflection (serialization = true) 进行了注册。请注意,此扩展会自动为您设置 quarkus.camel.native.reflection.serialization-enabled = true。如需更多信息,请参阅 原生模式用户指南。
2.1.3.3. 连接池 复制链接链接已复制到粘贴板!
您可以使用 quarkus-pooled-jms 扩展来获取连接的池支持。如需更多信息,请参阅 quarkus-pooled-jms 扩展文档。
只需将以下依赖项添加到 pom.xml 中:
<dependency>
<groupId>io.quarkiverse.messaginghub</groupId>
<artifactId>quarkus-pooled-jms</artifactId>
</dependency>
要启用池支持,您需要将以下配置添加到 application.properties 中:
quarkus.qpid-jms.wrap=true
2.1.4. 原生模式中的 transferException 选项 复制链接链接已复制到粘贴板!
要在原生模式中使用 transferException 选项,您必须启用对对象序列化的支持。如需更多信息,请参阅 原生模式用户指南。
您还需要为您要序列化的异常类启用序列化功能。例如:
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
2.1.5. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
扩展利用 Quarkus Qpid JMS 扩展。ConnectionFactory bean 会被自动创建,并与您连接至 AMQP 组件。连接工厂可以通过 Quarkus Qpid JMS 配置选项 进行配置。