16.2. Basic Configuration
Procedure Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
To configure a provider endpoint do the following:
- Decide what type of provider endpoint to use.
- Specify the name of the service for which this endpoint is acting as a proxy.This is specified using the
serviceattribute.TipIf you are using a SOAP provider and your WSDL file only has one service defined, you do not need to specify the service name. - Specify the name of the endpoint for which this endpoint is acting as a proxy.This is specified using the
endpointattribute.TipIf you are using a SOAP provider and your WSDL file only has one endpoint defined, you do not need to specify the endpoint name. - Specify the connection factory the endpoint will use.The endpoint's connection factory is configured using the endpoint's
connectionFactoryattribute. TheconnectionFactoryattribute's value is a reference to the bean that configures the connection factory. For example, if the connection factory configuration bean is namedwidgetConnectionFactory, the value of theconnectionFactoryattribute would be#widgetConnectionFactory.For information on configuring a connection factory see Chapter 14, Configuring the Connection Factory. - Specify the destination onto which the endpoint will place messages.For more information see the section called “Configuring a destination”.
- If you are using a JMS SOAP provider, specify the location of the WSDL defining the message exchange using the
wsdlattribute. - If your JMS destination is a topic, set the
pubSubDomaimattribute totrue. - If your endpoint is interacting with a broker that only supports JMS 1.0.2, set the
jms102attribute totrue.
Configuring a destination Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
A provider endpoint chooses the destination to use for sending messages with the following algorithm:
- If you provided a custom
DestinationChooserimplementation, the endpoint will use that to choose it's endpoint.For more information about providing customDestinationChooserimplementations see Section 19.1, “Using a Custom Destination Chooser”. - If you did not provide a custom
DestinationChooserimplementation, the endpoint will use its defaultDestinationChooserimplementation to choose an endpoint.The default destination chooser checks the message exchange received from the NMR for a DESTINATION_KEY property. If the message exchange has that property set, it returns that destination. - If the destination chooser does not return a destination, the endpoint will check to see if you configured the destination explicitly.You configure a destination using a Spring bean. The recommend way to configure the destination is to configure the bean separately and refer the bean using the endpoint's
destinationattribute as shown in Example 16.1, “Configuring a Provider's Destination”. You can also add the bean directly to the endpoint by wrapping it in ajms:destinationchild element.Example 16.1. Configuring a Provider's Destination
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0" ... > ... <jms:provider service="my:widgetService" endpoint="jbiWidget" destination="#widgetQueue" connectionFactory="#connectionFactory" /> ... <jee:jndi-lookup id="widgetQueue" jndi-name="my.widget.queue"> <jee:environment> java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory java.naming.provider.url=t3://localhost:7001 </jee:environment> </jee:jndi-lookup> ... </beans> - If the destination chooser does not return a destination and you did not explicitly configure a destination, the endpoint will use the value of the
destinationNameattribute to choose its destination.ThedestinationNameattribute takes a string that is used as the name of the destination to use. The binding component's default behavior when you provide a destination name is to resolve the destination using the standard JMSSession.createTopic()andSession.createQueue()methods to resolve the JMS destination.NoteYou can override the binding component's default behavior by providing a customDestinationResolverimplementation. See Section 19.2, “Using a Custom Destination Resolver”.
Examples Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
Example 16.2, “Basic Configuration for a Generic Provider Endpoint” shows the basic configuration for a plain JMS provider endpoint.
Example 16.2. Basic Configuration for a Generic Provider Endpoint
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
... >
...
<jms:provider service="my:widgetService"
endpoint="jbiWidget"
destinationName="widgetQueue"
connectionFactory="#connectionFactory" />
...
</beans>
Example 16.3, “Basic Configuration for a SOAP Provider Endpoint” shows the basic configuration for a SOAP JMS provider endpoint.
Example 16.3. Basic Configuration for a SOAP Provider Endpoint
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
... >
...
<jms:soap-provider wsdl="classpath:widgets.wsdl"
destinationName="widgetQueue"
connectionFactory="#connectionFactory" />
...
</beans>