Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How to Create a SOAP API Proxy in Mulesoft ESB

DZone's Guide to

How to Create a SOAP API Proxy in Mulesoft ESB

Here's a simple way to create a SOAP API proxy using Mule ESB.

· Integration Zone ·
Free Resource

The State of API Integration 2018: Get Cloud Elements’ report for the most comprehensive breakdown of the API integration industry’s past, present, and future.

Here's a simple way to create a SOAP API proxy in Mule ESB.

1. Let's assume that this is your WSDL link: http://domain.com:8080/somename/name2?wsdl.

2. Now open this link into your browser and copy its content into Notepad.

3. Do this with wsdlFileName.wsdl, as well.

4. Check your Namespace name and service name in WSDL. Below is a hint to find a tag. You will find a tag name like this:

targetNamespace="http://ws.los.xyz.com"

 service name="XyzServiceService"

5. Now, we are ready to create a proxy! Open the studio and start your work.

6. Drag HTTP Listener, CXF Connector, and HTTP Requester.

7. Configure the HTTP listener give port(8087) as per your system and provide the path as /somename/name2 from your WSDL URL.

8. Configure the CXF Connector:          

 operation :- Proxy service
    Namespace :- http://ws.los.xyz.com
    Service :- XyzServiceService
    Check Box :- validation Enabled
    Payload :- envelope

Note: Paste the wsdlFileName.wsdl file into the resource directory.    

Advanced TAB > WSDL Location: wsdlFileName.wsdl (WSDL file name).

Advanced TAB > Select a checkbox of SOAP Version 1.1 or 1.2 as per your service.   

9. Now configure the HTTP requester:

Protocal :- Http (as per wsdl link)
    port     :-  8080 (as per wsdl link)
    basepath :-  /somename/name2 (as per wsdl link)
    path :- #[message.inboundProperties.'http.listener.path']
    method :- #[message.inboundProperties.'http.method']

10. When the proxy API is ready, you can run it and check it with this link.

Please refer to the XML code below:

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8087" doc:name="HTTP Listener Configuration"/>
    <http:request-config name="HTTP_Request_Configuration"  host="domain.com" port="8080" basePath="somename/name2" doc:name="HTTP Request Configuration" protocol="HTTP"/>
 <flow name="HttpWebServiceBridge">
         <http:listener config-ref="HTTP_Listener_Configuration" path="/TUWebService/services/TUWebService" doc:name="HTTP"/>
          <cxf:proxy-service
             wsdlLocation="wsdlFileName.wsdl" 
             service="XyzServiceService"
             namespace="http://ws.los.xyz.com"
             validationEnabled="true"
             enableMuleSoapHeaders="false" doc:name="CXF" payload="envelope"/>
         <http:request config-ref="HTTP_Request_Configuration" path="#[message.inboundProperties.'http.listener.path']" method="#[message.inboundProperties.'http.method']" doc:name="HTTP"/>
 </flow>

Your API is not enough. Learn why (and how) leading SaaS providers are turning their products into platforms with API integration in the ebook, Build Platforms, Not Products from Cloud Elements.

Topics:
mulesoft ,integration ,soap api

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}