第 2 章 扩展参考
本章提供有关 Quarkus 的 Camel Extensions 的参考信息。
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 组件支持 javax.jms.Message
和 org.apache.camel.Message
之间的消息映射。当希望转换 org.w3c.dom.Node
的 Camel 消息正文类型时,您必须确保 classpath 上存在 camel-quarkus-jaxp
扩展。
2.1.3.2. 对 javax.jms.ObjectMessage 的原生模式支持
将 JMS 消息有效负载作为 javax.jms.ObjectMessage
发送时,您必须注解相关类以使用 @RegisterForReflection (serialization = true)
进行序列化。请注意,这个扩展会自动为您设置 quarkus.camel.native.reflection.serialization-enabled = true
。如需更多信息,请参阅 原生模式用户指南。
2.1.4. Camel Quarkus 限制
2.1.4.1. 连接池
JMS 连接池尚不受支持,因为 quarkus-qpid-jms 仍存在打开 的问题。
2.1.5. 原生模式中的 transferException 选项
要在原生模式中使用 transferException
选项,您必须启用对对象序列化的支持。如需更多信息,请参阅 原生模式用户指南。
您还需要为您要序列化的异常类启用序列化。例如:
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
2.1.6. 其他 Camel Quarkus 配置
扩展利用 Quarkus Qpid JMS 扩展。ConnectionFactory bean 会被自动创建,并连接到 AMQP 组件中。连接工厂可以通过 Quarkus Qpid JMS 配置选项 进行配置。