Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview of the ServiceMix

...

WSIF Example

Web Services Invocation Framework (WSIF) provides a Java API for calling Web services, hiding the details of how the service is provided, i.e., via SOAP, JMS, etc. The following guide describes the ServiceMix components that integrate with the Apache Web Service Invocation Framework (WSIF)to perform web service invocations using a number of different implementation protocols such as Axis, local Java, EJB, JMS, JCA and CCI.

...

Panel
borderColor#ccc
titleWSIF Logical Flow Diagram
borderStylesolid

 



Following, are the details of example program's logic flow:

...

Component or Bean ID

Description

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="a4f0e15e4258d675-b681d4ee-470646c4-80f39904-9d54bb0318bdae0a7c061d74"><ac:plain-text-body><![CDATA[

checkAvailability

This component uses the WSIFBinding class to integrate WSIF to ServiceMix as specified in the class property. Its definitionResource property is set to read the classpath:org/servicemix/components/wsif/service.wsdl file, which is the WSDL file that will be used. The service.wsdl file can be found at [servicemix-2.x_src_install_dir]\servicemix-components\base\src\test\resources\org\apache\servicemix\components\wsif. In the init() method of the WSIFBinding class, service.wsdl is read to define the binding extension.

]]></ac:plain-text-body></ac:structured-macro>

MDB

This MDB is the actual implementation of the service. It acts like a message listener on the queue specified in the config files. When a message is delivered, it extracts the body which is a ZIP Code. It then applies some logic to determine whether DSL service is available at this ZIP Code or not. For simplicity, it just returns true for all ZIP Codes < 50000 and false otherwise. The return message is sent to the queue specified in the replyTo field of the request message. NOTE: The MDB must encode the correct JMSCorrelationID in the return message in order for it to be picked up by WSIF.

...

Wiki Markup
{snippet:id=wsif|lang=xml|url=http://svn.servicemix.codehaus.org/*checkout*/branches/servicemix-1.1/base/src/test/resources/org/servicemix/components/wsif/example.xml}

 

Following is an example of how to enable a service to be exposed over a JMS topic or queue. This is a snippet of code from the service.wsdl file. It shows how to configure the JMS binding:

Wiki Markup
{snippet:id=wsif|lang=xml|url=http://svn.servicemix.codehaus.org/*checkout*/branches/servicemix-1.1/base/src/test/resources/org/servicemix/components/wsif/service.wsdl}

 

Here are descriptions of the properties found in the service.wsdl file. The descriptions are quoted from the WSDL Bindings for JMS web page:

...

Wiki Markup
{snippet:id=wsif|lang=java|url=http://svn.servicemix.codehaus.org/*checkout*/branches/servicemix-1.1/base/src/test/java/org/servicemix/components/wsif/WsifTest.java}

 

The previous Java code works against the given WSDL 1.1 service.wsdl file using its named parts:

Wiki Markup
{snippet:id=wsdl|lang=xml|url=http://svn.servicemix.codehaus.org/*checkout*/branches/servicemix-1.1/base/src/test/resources/org/servicemix/components/wsif/service.wsdl}

 

Related Documentation

For more information, please see:

...