WebSphere Enterprise Service Bus for z/OS, Version 6.2.0 Operating Systems: z/OS


Dynamic invocation with wired HTTP import

How to enable dynamic invocation of an endpoint with a wired HTTP data binding import.

Introduction

You can invoke services using endpoints that are different to those specified in the import. For HTTP bindings, you can specify a dynamic endpoint using a URI that conforms to the HTTP URI standard.
Figure 1. Illustration of endpoint override by dynamic invocation, with wired import
A message flows through a module and through the import binding to a Web service. Information in the message can override the endpoint dynamically

You can create a mediation module that includes the dynamic endpoint, by performing tasks in WebSphere® Integration Developer.

Programmatic override of endpoint addresses

You can use the SCA public API to override the endpoint address. In the following example code, the uri value must conform to the HTTP URI standard.
epr = EndpointReferenceFactory.INSTANCE.createEndpointReference();
epr.setAddress(uri);
epr.setBindingType(bindingType);
Service dynamicService = (Service) ServiceManager.INSTANCE.getService(refname, epr);
DataObject customer = createCustomer(refname, "twoway", uri);
The HTTP URI has the same prefix as a WebServices SOAP/HTTP endpoint address. Identify the correct endpoint type by adding a binding type attribute to the endpoint reference. If you do not specify the binding type attribute for the HTTP URI, the address is interpreted as a SOAP / HTTP endpoint, even when the endpoint reference is wired to a HTTP import.

Representing the HTTP endpoint

The HTTP endpoint used in the dynamic invocation is structured according to the HTTP URI standard.

Creating a dynamic invocation with an HTTP endpoint

To create a mediation module that includes the dynamic endpoint, perform the following tasks:
  1. Create Mediation Module 1, containing a POJO wiring to Import.
  2. Create Mediation Module 2, containing Export 2 wiring to POJO 2.
  3. Create Mediation Module 3, containing Export 3 wiring to POJO 3.
  4. Configure the Import to route messages to Export 2.
  5. Check that Export 2 and Export 3 have the same port type.
  6. Deploy the three modules to the server.

Using dynamic invocation

Dynamic invocation takes place when the POJO is invoked in a request-response operation, with Export 3 identified as the endpoint in the message. The POJO extracts the endpoint from the message, and identifies Export 3 as the endpoint, rather than the Export 2 endpoint specified in the original deployment. The POJO uses the SCA Endpoint Reference API, and the reference wired to the Import, to invoke the remote service specified by the endpoint in the message. The binding type is set to HTTP, to ensure that the correct address type is used. After the service is invoked, a response is returned to the POJO.

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 one of two conditions is true:
  • The URI has invalid syntax.
  • The endpoint specified does not exist.

reference Reference topic

Terms of use | Feedback


Timestamp icon Last updated: 21 June 2010


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.zseries.doc/ref/rwesb_dynamicroutingwithwiredHTTPimport.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
This information center is powered by Eclipse technology (http://www.eclipse.org).