Este contenido no está disponible en el idioma seleccionado.
Chapter 40. JMS
Sent and receive messages to/from a JMS Queue or Topic.
40.1. What’s inside Copiar enlaceEnlace copiado en el portapapeles!
-
JMS component, URI syntax:
jms:destinationType:destinationName
Please refer to the above link for usage and configuration details.
40.2. Maven coordinates Copiar enlaceEnlace copiado en el portapapeles!
Create a new project with this extension on code.quarkus.redhat.com
Or add the coordinates to your existing project:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-jms</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jms</artifactId>
</dependency>
40.3. Usage Copiar enlaceEnlace copiado en el portapapeles!
40.3.1. Message mapping with org.w3c.dom.Node Copiar enlaceEnlace copiado en el portapapeles!
The Camel JMS component supports message mapping between javax.jms.Message
and org.apache.camel.Message
. When wanting to convert a Camel message body type of org.w3c.dom.Node
, you must ensure that the camel-quarkus-jaxp
extension is present on the classpath.
40.3.2. Native mode support for javax.jms.ObjectMessage Copiar enlaceEnlace copiado en el portapapeles!
When sending JMS message payloads as javax.jms.ObjectMessage
, you must annotate the relevant classes to be registered for serialization with @RegisterForReflection(serialization = true)
. Note that this extension automatically sets quarkus.camel.native.reflection.serialization-enabled = true
for you. Refer to the native mode user guide for more information.
40.3.3. Support for Connection pooling and X/Open XA distributed transactions Copiar enlaceEnlace copiado en el portapapeles!
Connection pooling is a Technical Preview feature in this release of Camel Extensions for Quarkus.
To use connection pooling in the camel-quarkus-jms
components, you must add io.quarkiverse.artemis:quarkus-artemis
and io.quarkiverse.messaginghub:quarkus-pooled-jms
to your pom.xml and set the following configuration:
quarkus.pooled-jms.max-connections = 8
quarkus.pooled-jms.max-connections = 8
You can use the quarkus-pooled-jms
extension to get pooling and XA support for JMS connections. Refer to the quarkus-pooled-jms extension documentation for more information. Currently, it only works with quarkus-artemis-jms
extension. Just add these two dependencies to your pom.xml
:
Note that pooling is enabled by default.
To enable XA, you need to add the following configuration to your application.properties
:
quarkus.pooled-jms.xa.enabled=true
quarkus.pooled-jms.xa.enabled=true
clientID
and durableSubscriptionName
are not supported in pooling connections. If setClientID
is called on a reused
connection from the pool, an IllegalStateException
will be thrown. You will get some error messages such like Cause: setClientID can only be called directly after the connection is created
40.4. transferException option in native mode Copiar enlaceEnlace copiado en el portapapeles!
To use the transferException
option in native mode, you must enable support for object serialization. Refer to the native mode user guide for more information.
You will also need to enable serialization for the exception classes that you intend to serialize. For example.
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)