Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Swordfish Documentation: Creating JAX-WS Client
Creating the JAX-WS Client
This section contains instructions on creating the JAX-WS client for the JAX-WS service deployed into the NMR.
Prerequisites
Eclipse Galileo M7 build or later.
The target platform should contain the Apache CXF and the org.eclipse.swordfish.plugins.cxf.support bundles
The examples described here are based on Eclipse Galileo M7.
About JAX-WS Client
For the general information of how to configure the JAX-WS client please look at
http://cwiki.apache.org/CXF20DOC/jax-ws-configuration.html (Configuring a Spring Client section)
It is used to create the java proxy based on the supplied interface class.
This proxy transforms method call into the SOAP request and sends it to the web service
Creating the Client
The sample that shows how to create the JAX-WS client is located at http://dev.eclipse.org/svnroot/rt/org.eclipse.swordfish/trunk/org.eclipse.swordfish.samples/org.eclipse.swordfish.samples.cxfendpoint/
To create the client:
- Create the spring xml configuration file
- Add the following spring imports:
<import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/org/eclipse/swordfish/plugins/cxf/support/nmr-transport.xml" />
- Add the JAX-WS client entry:
<jaxws:client id="<<The name of the client>>" serviceClass="<<The interface class of the web service deployed>>" serviceName="<<The serviceName QName (service element in the wsdl)>>" interfaceName="<<The interfaceName QName (portType element in the wsdl)>>" address="nmr:<<The name of the webservice's nmr endpoint>>" />
serviceName and interfaceName attributes are optional
For example for the JAX-WS endpoint:
<jaxws:endpoint id="bookingService" implementor="org.eclipse.swordfish.samples.cxf.BookingServiceImpl" address="nmr:BookingService"/>
The client should look like this:xmlns:swordfishCxf="http://cxf.samples.swordfish.eclipse.org/" .... <jaxws:client id="bookingServiceClient" serviceClass="org.eclipse.swordfish.samples.cxf.BookingService" serviceName="swordfishCxf:BookingServiceImpl" address="nmr:bookingService" />
- Provide the necessary ImportPackage and Require-Bundle statements in the MANIFEST.MF file as it is done in http://dev.eclipse.org/svnroot/rt/org.eclipse.swordfish/trunk/org.eclipse.swordfish.samples/org.eclipse.swordfish.samples.cxfendpoint/META-INF/MANIFEST.MF