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

...

This component has been deprecated in favor to servicemix-http component.
If you want to invoke EJBs, use servicemix-jsr181 component.

...

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.

...

The diagram below illustrates the example program's logical flow:

...

...



...

Image Modified

...



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="557aa3d0-67cf-4306-b3d0-a27486cdfb03"><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.

...

The following snippet is from the servicemix.xml file. Note: that the WSIFBinding class has the service.wsdl file as a property.

...

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:

...

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

  • <jms:address> describes a target port that is accessible via JMS.
  • destinationStyle must either be queue or topic, although only queue is supported at this time.
  • jndiDestinationName is the JNDI name of the JMS queue that WSIF will send requests to.
  • jndiConnectionFactoryName is the JNDI name of the connection factory that WSIF will be used.
  • jndiProviderURL and initialContextFactory specify which JNDI database to use. If they are not present, WSIF uses the default JNDI.
  • jms:binding specifies that this binding is for Native JMS. The type is the type of the JMS message that will be sent. In this case it will be a text message.

Working with XML versus properties

...

A Java client can be programmed as an alternative way of invoking the web service, in lieu of a web form. The following is a Java client example using the ServiceMix Client API in a WSIF approach, passing in and fetching out named parameters. This Java client is performing the role originally assigned to the HTTP Client above. It also needs to be configured (not shown) to communicate to the "checkAvailability" service via the ServiceMix NMR. In other words, it needs to have "checkAvailability" set as its "destination" for the NMR messages it sends.

...

...

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

...

Related Documentation

For more information, please see:

...