Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: removed dead link

...

CXF provides a transport plug-in that enables endpoints to use Java Message Service (JMS) queues and topics. CXF's JMS transport plug-in uses the Java Naming and Directory Interface (JNDI) to locate and obtain references to the JMS provider that brokers for the JMS destinations. Once CXF has established a connection to a JMS provider, CXF supports the passing of messages packaged as either a JMS ObjectMessage or a JMS TextMessage.

Easier configuration using the new JMSConfigFeature

Starting with CXF 2.0.9 and 2.1.3 there is a new easier and more flexible configuration style available. See Using the JMSConfigFeature

JMS Transport with SOAP over Java Message Service 1.0-Supported

Starting with the CXF 2.3, we make some improvement on the JMS Transport to support The JMS transport also supports the SOAP over JMS specification. See SOAP over JMS 1.0 support for more information.

Standard JMS transport configuration in CXF is done by defining a JMSConduit or JMSDestination, discussed below. There is however an easier configuration option more conformant to Spring dependency injection, see Using the JMSConfigFeature.

JMS Namespaces

WSDL Namespace

The WSDL extensions for defining a JMS endpoint are defined in the namespace http://cxf.apache.org/transports/jms. In order to use the JMS extensions you will need to add the namespace definition shown below to the definitions element of your contract.

...

By default, CXF endpoints using JMS create a temporary queue for sending replies back and forth. You can change this behavior by setting the jndiReplyDestinationName attribute in the endpoint's contract. A client endpoint will listen for replies on the specified destination and it will specify the value of the attribute in the ReplyTo field of all outgoing requests. A service endpoint will use the value of the jndiReplyDestinationName attribute as the location for placing replies if there is no destination specified in the request's ReplyTo field.

As of CXF 2.1.3 and 2.0.9 a A static reply queue can not be shared by several instances of the service client. Please use a dynamic reply queue or different queue names per instance instead. (See discussion on the mailing list)

The following example shows an example of a JMS WSDL port specification.

...