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
CRM integration has become the cornerstone to meeting initiatives across organizations. Explore the top 6 value-driven Salesforce CRM integrations ebook.  

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>

Sync, automate, and notify lead to customer changes across marketing, CRM, and messaging apps in real-time with the Cloud Elements eventing framework. Learn more.

Topics:
mulesoft ,integration ,soap api

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}