How to enable dynamic invocation of an endpoint with an
unwired web services data binding import, using SMO.
Introduction
You can invoke services by
using endpoints that are different to those specified in the import.
For web services bindings, you can specify a dynamic endpoint using
a normal web services URL. If the import is unwired, the incoming
message is examined to find the name of a target import to use.
Figure 1. Illustration of endpoint override by dynamic invocation
using SMO, with an unwired import
You create a mediation module that includes the dynamic
endpoint, by performing tasks in WebSphere® Integration Developer.
Creating a dynamic invocation with an unwired web
services endpoint
To create a mediation module that includes
the dynamic endpoint, perform the following tasks:
- Create Mediation Module 1, containing an Export of any type, a
mediation flow component, and an unwired Import.
- Connect the Mediation Module import to static SvcProvider 1.
- Create SvcProvider 2.
- Check that SvcProvider 1 and SvcProvider 2 have the same port
type.
- Check that the Import is configured to route messages to SvcProvider
1.
- Check that the callout node has dynamic endpoint invocation override
enabled.
- Deploy the modules to the server.
Using dynamic invocation
For web services
invocation, the endpoint URL is identified as normal. For example,
an http: or jms: URL prefix indicates
that a web service will be invoked. Where the import is unwired, the
message contains a target import, and routing criteria that resolve
to the intended export. The mediation flow component extracts the
endpoint and target import from the message, and puts it into the
SMO, using the Message Element Setter primitive. For example, in Figure 1 the
callout uses information from the SMO to invoke SvcProvider 2. Any
response is returned by the response flow to the caller of export.
A
one-way invocation message works the same way as a two-way message,
except that no response message is returned.
A runtime exception
occurs when any one of three conditions is true:
- The URI has invalid syntax.
- The target import specified does not exist.
- SvcProvider 2 is not available.
A runtime exception thrown by the import is returned in the
response flow.