Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

There are newer JMS endpoints available. See the servicemix-jms new endpoints document for more information.

...

Name

Type

Description

Default

userName

String

UserName used to create a connection

 

password

String

Password used to create a connection

 

jndiInitialContextFactory

String

Default JNDI InitialContext factory

false

jndiProviderUrl

String

Default JNDI provider url

 

jndiName

String

Default JNDI name to lookup the JMS ConnectionFactory

 

...

This xml file should respect the given syntax, though this is a spring based xml configuration file from where all beans of class JmsEndpoint are retrieved.
See a full example here.  Note that you have to define the jms namespace with

...

...

Any numbers of endpoints can be specified in the xbean.xml file.

...

...

ServiceMix >= 3.2 ships with new endpoints. We encourage all users to use those. They are described at servicemix-jms new endpoints.

...

Consumer endpoint

A consumer endpoint is a server-side http endpoint that will consume plain JMS, or JMS+SOAP requests and send them into the NMR to a given JBI endpoint, which is called the proxied endpoint.

...

Name

Type

Description

Required

service

QName

the service name of the proxied endpoint

yes

endpoint

String

the endpoint name of the proxied endpoint

yes

interfaceName

QName

the interface name of the proxied endpoint

 

targetService

QName

the service name of the target endpoint

no (defaults to the service attribute)

targetEndpoint

String

the endpoint name of the target endpoint

no (defaults to the endpoint attribute)

targetInterfaceName

QName

the interface name of the target endpoint

 

role

String

must be 'consumer'

yes

defaultMEP

URI

the default MEP uri to use

no

defaultOperation

QName

the default operation name to set on the JBI exchange. if not set, it defaults to the QName of the root xml element

no

soap

boolean

if set, the component will parse the soap requests and send the content into the NMR

no (defaults to false)

soapVersion

string

can be set to '1.1' to force the use of SOAP 1.1 messages

no

wsdlResource

Spring resource

if set, the wsdl will be retrieved from the given Spring resource

no

initialContextFactory

String

the JNDI context factory class name

no

jndiProviderURL

String

the JNDI provide url

no

connectionFactory

javax.jms.ConnectionFactory

the connectionFactory to use. This optional property can be used instead of using JNDI configuration

no

jndiConnectionFactoryName

String

the JNDI name of the JMS ConnectionFactory to lookup

yes (unless a default one is provided on the jms component configuration)

destination

javax.jms.Destination

the Destination to use. This optional property can be use instead of jndiDestinationName or jmsProviderDestinationName

no (one of destination, jndiDestinationName or jmsProviderDestinationName)

jndiDestinationName

String

the JNDI name of the destination to look up

yes (unless destination or jmsProviderDestinationName is set)

jmsProviderDestinationName

String

if used, the target JMS destination will be created by the JMS provider by calling Session.createQueue or Session.createTopic

no (one of destination, jndiDestinationName or jmsProviderDestinationName)

destinationStyle

String

used to select the destination type used with the jmsProviderDestinationName

no (unless jmsProviderDestinationName is used)

useMsgIdInResponse

boolean

true indicates that the JMS correlation id will be set to the id of the JMS request message; false indicates that an artificial correlation id will be used instead

no (in this case the default behaviour is to use the message exchange id as the correlation id)

...

Name

Type

Description

Required

service

QName

the service name of the exposed jbi endpoint

yes

endpoint

String

the endpoint name of the exposed jbi endpoint

yes

interfaceName

QName

the interface name of the exposed jbi endpoint

no

role

String

must be 'provider'

yes

locationURI

URI

the http url of the target service

yes

soap

boolean

if set, the component will parse the message from the NMR and wrap it in a SOAP envilope

no (defaults to false)

wsdlResource

Spring resource

if set, the wsdl will be retrieved from the given Spring resource

no

initialContextFactory

String

the JNDI context factory class name

no

jndiProviderURL

String

the JNDI provide url

no

connectionFactory

javax.jms.ConnectionFactory

the connectionFactory to use. This optional property can be used instead of using JNDI configuration

no

jndiConnectionFactoryName

String

the JNDI name of the JMS ConnectionFactory to lookup

yes (unless a default one is provided on the jms component configuration)

destination

javax.jms.Destination

the Destination to use. This optional property can be use instead of jndiDestinationName or jmsProviderDestinationName

no (one of destination, jndiDestinationName or jmsProviderDestinationName)

jndiDestinationName

String

the JNDI name of the destination to look up

yes (unless destination or jmsProviderDestinationName is set)

jmsProviderDestinationName

String

if used, the target JMS destination will be created by the JMS provider by calling Session.createQueue or Session.createTopic

no (one of destination, jndiDestinationName or jmsProviderDestinationName)

destinationStyle

String

used to select the destination type used with the jmsProviderDestinationName

no (unless jmsProviderDestinationName is used)

needJavaIdentifiers

boolean

(defaults to false) indicates that the jms provider does not support extented syntax for JMS properties and only support valid java identifiers. In such a case, all non conformant properties will not be set on the JMS message.

...

JCA enabled endpoints need specific configuration. A full example is available here

Configuring the ConnectionFactory and Destination

...

  • using destination
  • using jndiDestinationName
  • using jmsProviderDestinationName and destinationStyle

Examples

Using JNDI

...

...

If you use ActiveMQ, you can use the following definition:

...

...

WSDL Deployment

In addition to xbean based deployment, the component accepts WSDL-based deployment.
The service unit may contain any number of WSDL files, each one being parsed and activating the specified endpoints.
To retrieve the necessary informations from the wsdl, the component can recognize a jms extension to provide JNDI informations and a jbi extension which specifies the role of the component and the default MEP to use for JBI exchanges.

Here is an example of a WSDL:

...

Lightweight mode

The servicemix-jms component can also be configured in a spring/xbean configuration file, for use in an embedded ServiceMix.
Here is an example of such a configuration:

...

When using the servicemix.xml configuration file to create jms endpoints, you must include the servicemix-jms-xxx.jar in your classpath.
You will find this file inside the component installer (./components/servicemix-jms-xxx.zip).
Failing this, an IllegalArgumentException will be thrown with the following message:
Component name: xxxxxx is bound to an object which is not a JBI component, it is of type: javax.xml.namespace.QName

...

The header uses the following syntax:

...

where:

  • Wiki Markup\[delimiter\] is ":" when the \ [target namespace\] is a URN, otherwise "/".unmigrated-wiki-markup
  • \[target namespace\] is the namespace of the interface. Wiki Markup
  • \[interface name\] is the name of the interface. Wiki Markup\
  • [operation name\] is the name of the operation.

For example, the following header

...

...

will be used to address the JBI exchange with the following properties:

  • interface name: {http://example.com/stockquote\Image Removed}StockQuoteInterface
  • operation name: {http://example.com/stockquote\Image Removed}GetLastTradePrice

...

The header uses the following syntax:

...

where:

  • Wiki Markup\[delimiter\] is ":" when the \ [target namespace\] is a URN, otherwise "/".
  • Wiki Markup\[target namespace\] is the namespace of the interface. Wiki Markup
  • \[service name\] is the name of the service.unmigrated-wiki-markup\
  • [endpoint name\] is the name of the endpoint.

For example, the following header

...

...

will be used to address the JBI exchange with the following properties:

...