SlideShare a Scribd company logo
Mulesoft | Soap Service
- Ujjawal Kant
Exposing a Mule Soap Service (Xml Only) from an Abstract WSDL
In this slide we will focus on exposing a soap web service using Mule.
If we have the concrete WSDL handy, its just a simple configuration that is
required and you can jump to Slide X (Step 2) in this case.
We will divide our approach into two steps:
• Step 1 - Create a concrete WSDL from the Schema definitions and abstract WSDL.
WSDL.
• Step 2 - It will focus on using the concrete WSDL created in Step 1 and expose the
the service eventually.
Step 1
• We need to first have the Schema definitions and Abstract WSDL in place.
• Lets create a new mule project named calculator and place xsd resource under
src/main/resources/schemas
• Please find the code snippet for calculator.xsd and calculator.wsdl in the next slides. (We
should be aware of creating our xsd and wsdl resources using eclipse)
calculator.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.mule.com/schemas/calculator"
targetNamespace="http://www.mule.com/schemas/calculator"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="Calculator">
<xs:complexType>
<xs:sequence>
<xs:element name="Numbers">
<xs:complexType>
<xs:sequence>
<xs:element name="Number1"
type="xs:decimal" /> <xs:element
name="Number2"
type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Result">
<xs:complexType>
<xs:sequence>
<xs:element name="Value" type="xs:decimal"/>
<xs:element name="Status" type="xs:string"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Fault">
<xs:complexType>
<xs:sequence>
<xs:element name="Code" type="xs:string"/>
<xs:element name="Message" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
calculator.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns="http://www.mule.com/schemas/calculat
or"
xmlns:tns="http://www.mule.com/calculator/v0.1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.mule.com/calculat
or/v0.1">
<import
namespace="http://www.mule.com/schemas../sch
emas/calculator" location="Calculator.xsd"/>
<message name="AddInput"> <part
element="ns:Calculator" name="part1"/>
</message>
<message name="AddOutput">
<part element="ns:Result" name="part1"/>
</message> <message name="SubInput">
<part element="ns:Calculator"
name="part1"/>
</message>
<message name="SubOutput">
<part element="ns:Result" name="part1"/>
</message>
<message name="MulInput">
<part element="ns:Calculator"
name="part1"/>
</message>
<message name="MulOutput">
<part element="ns:Result" name="part1"/>
</message>
<message name="DivInput">
<part element="ns:Calculator"
name="part1"/>
</message>
<message name="DivOutput">
<part element="ns:Result" name="part1"/>
</message>
<message name="Fault">
<part name="part1" element="ns:Fault"/>
</message> <portType
name="CalculatorPort">
<operation name="Add">
<input message="tns:AddInput"/>
<output message="tns:AddOutput"/>
<fault name="fault1"
message="tns:Fault"/>
</operation>
<operation name="Sub">
<input message="tns:SubInput"/>
<output message="tns:SubOutput"/>
<fault name="fault1"
message="tns:Fault"/>
</operation>
<operation name="Mul">
<input message="tns:MulInput"/>
<output message="tns:MulOutput"/>
<fault name="fault1"
message="tns:Fault"/>
</operation> <operation name="Div">
<input message="tns:DivInput"/>
<output message="tns:DivOutput"/>
<fault name="fault1"
message="tns:Fault"/>
</operation>
</portType>
</definitions>
Mule flow for Step 1:
• Lets create our Mule Flow for Step 1. This will involve having a Http Connector followed by CXF component.
• Configure the Http Connector first, having the Base Uri with the soap address we want to keep in our concrete wsdl.
• Next drag and drop CXF Soap activity ; Below is the flow so far. Select JAX-WS service from the Operation drop
down available in CXF component.
calculatorFlow….
• Refer to the below snap shot to generate the related java files using the abstract wsdl, in the CSF soap component.
calculatorFlow….
• Once the necessary java files are generated in calculatorservcie package, we would get a folder structure as shown
below :
• Once the java files are intact, drop the Java Component after the CXF component.
calculatorFlow….
• We need to add the ServiceImplementation class file for this Java component. Under the Class Name tab, Click Add
and give a name to the ServiceImplementation java file (CalculatorServiceImpl in our case) as well as select the
package and the Interface name.
• Also browse the Interface which was generated in Slide 8, Browse CalculatorPort.java
calculatorFlow….
• Below is our flow from Step 1 .You can notice the error visible in the previous slide has disappeared now
• Run the mule flow, once it is deployed, use the below url over IE/ (any browser) to retrieve the concrete wsdl. Save
the concrete wsdl. Do modifications to the soap action of the operations as required. We will use the same soap
actions in the choice block of our mule flow to discriminate the operations.
• http://localhost:8899/Calculator?wsdl [Port Used in Http connector was 8899 and /Calculator was the base uri]
• We would receive the full concrete wsdl as a response on our browser. We just need to tweak the wsdl to add soap
actions in the operations.
calculatorFlow….
calculatorFlow….
• Below is the modified concrete wsdl with the highlighted additions:
Step 2
• Once we have the concrete wsdl ready. Place the concrete wsdl under src/main/wsdl location in your mule
project
• We will create a new mule flow “calculatorServiceFlow”. Drag and drop Http and CXF components and
select Proxy Service from the Operations drop down in CXF Soap activity
calculatorServiceFlow….
• CXF Activity Configurations:
• Get the values of Port, Namespace, Service from the concrete wsdl
• An important : Add wsdlLocation=“CalculatorConcrete.wsdl” in the cxf component xml tag, as shown below:
• <cxf:proxy-service configuration-ref="CXF_Configuration" port="CalculatorPortPort"
namespace="http://www.mule.com/calculator/v0.1" service="CalculatorPortService" payload="body"
wsdlLocation="CalculatorConcrete.wsdl" doc:name="CXF"/>
calculatorServiceFlow….
• Add a logger post the CXF to print the SOAP Action
• Once you run the flow; you can see the SOAP Action printed as:
calculatorServiceFlow….
• Add a choice to differentiate the operations and its individual implementation:
calculatorServiceFlow….
• Finally run and deploy you service and test it for its execution:
• Hope this helps!!
Thank you.
- Ujjawal Kant
- leoujjawal@gmail.com

More Related Content

PPTX
Mule java part-1
Karnam Karthik
 
PPTX
Mule java part-1
Ravinder Singh
 
PPTX
Mulesoft vm transport reference
kumar gaurav
 
PPT
Flowvar and Sessionvar in Mule
Christian Hipolito
 
PPTX
Webservice vm in mule
Praneethchampion
 
PPTX
Mule jms queues
Gandham38
 
PPTX
Load balancer in mule
Ramakrishna kapa
 
PPTX
Mule Quartz connector
Ankush Sharma
 
Mule java part-1
Karnam Karthik
 
Mule java part-1
Ravinder Singh
 
Mulesoft vm transport reference
kumar gaurav
 
Flowvar and Sessionvar in Mule
Christian Hipolito
 
Webservice vm in mule
Praneethchampion
 
Mule jms queues
Gandham38
 
Load balancer in mule
Ramakrishna kapa
 
Mule Quartz connector
Ankush Sharma
 

What's hot (20)

PPTX
Mule with stored procedure
mdfkhan625
 
PPTX
Testing mule
Sindhu VL
 
PPTX
Web service vm in mule
Mohammed246
 
PPTX
Stored procedure in Mule
Khasim Saheb
 
PPTX
Mule soap
Khasim Saheb
 
PPTX
Scatter gatherinmule
F K
 
PPTX
Mule integration
Son Nguyen
 
PPTX
How muleworks
Khadhar Koneti
 
PPTX
Vm component in mule
javeed_mhd
 
PPTX
Using groovy in mule
Son Nguyen
 
PPTX
Soap In Mule
Bui Kiet
 
PPTX
Mule batch job
Anirban Sen Chowdhary
 
PPTX
Mule Esb Introduction
AbdulImrankhan7
 
PPTX
Creating dynamic json in Mule
F K
 
PPTX
Mule soap
D.Rajesh Kumar
 
PPTX
Mule ESB - Mock Salesforce Interface
krishananth
 
PPTX
Junit in mule demo
javeed_mhd
 
PPTX
Scatter gather flow in mule
Son Nguyen
 
PPTX
Flows and subflows in mule
Sindhu VL
 
PPTX
Mule with composite source
Anirban Sen Chowdhary
 
Mule with stored procedure
mdfkhan625
 
Testing mule
Sindhu VL
 
Web service vm in mule
Mohammed246
 
Stored procedure in Mule
Khasim Saheb
 
Mule soap
Khasim Saheb
 
Scatter gatherinmule
F K
 
Mule integration
Son Nguyen
 
How muleworks
Khadhar Koneti
 
Vm component in mule
javeed_mhd
 
Using groovy in mule
Son Nguyen
 
Soap In Mule
Bui Kiet
 
Mule batch job
Anirban Sen Chowdhary
 
Mule Esb Introduction
AbdulImrankhan7
 
Creating dynamic json in Mule
F K
 
Mule soap
D.Rajesh Kumar
 
Mule ESB - Mock Salesforce Interface
krishananth
 
Junit in mule demo
javeed_mhd
 
Scatter gather flow in mule
Son Nguyen
 
Flows and subflows in mule
Sindhu VL
 
Mule with composite source
Anirban Sen Chowdhary
 
Ad

Viewers also liked (20)

PPTX
Java in mule part 3
vasanthii9
 
PPTX
Routing in mule
vasanthii9
 
PPT
Mule saas
himajareddys
 
PPTX
Java in mule part 2
vasanthii9
 
PPTX
Mule Message Properties Component
Durga Prasad Kakarla
 
PPTX
Git hub plugin setup and working with Git hub on anypoint studio
Sudha Ch
 
PPTX
Enabling Security For ActiveMQ JMX Access
Ramakrishna Narkedamilli
 
PPTX
Mule management console installation with Tomcat
Sudha Ch
 
PPTX
Mule enricher
Ravinder Singh
 
PPTX
Microservices with mule
Govind Mulinti
 
PPTX
Anypoint Platform Deployment Strategies
Govind Mulinti
 
PPTX
Mule
D.Rajesh Kumar
 
PPTX
Mule with quartz
Khan625
 
PPTX
Drools in Mule
Mohammed246
 
PPTX
Mule soft esb – data validation best practices
alfa
 
PPTX
Telling the world why we love mule soft!
Sudha Ch
 
PPTX
Vm component in mule demo
Sudha Ch
 
ODP
Fetch records from mysql using mule esb
AnilKumar Etagowni
 
PPTX
Until successful component in mule demo
Sudha Ch
 
PPTX
Mule Esb
javeed_mhd
 
Java in mule part 3
vasanthii9
 
Routing in mule
vasanthii9
 
Mule saas
himajareddys
 
Java in mule part 2
vasanthii9
 
Mule Message Properties Component
Durga Prasad Kakarla
 
Git hub plugin setup and working with Git hub on anypoint studio
Sudha Ch
 
Enabling Security For ActiveMQ JMX Access
Ramakrishna Narkedamilli
 
Mule management console installation with Tomcat
Sudha Ch
 
Mule enricher
Ravinder Singh
 
Microservices with mule
Govind Mulinti
 
Anypoint Platform Deployment Strategies
Govind Mulinti
 
Mule with quartz
Khan625
 
Drools in Mule
Mohammed246
 
Mule soft esb – data validation best practices
alfa
 
Telling the world why we love mule soft!
Sudha Ch
 
Vm component in mule demo
Sudha Ch
 
Fetch records from mysql using mule esb
AnilKumar Etagowni
 
Until successful component in mule demo
Sudha Ch
 
Mule Esb
javeed_mhd
 
Ad

Similar to Mulesoft Soap Service (20)

PPTX
Soap Component
sivachandra mandalapu
 
PPTX
How to use soap component
RaviRajuRamaKrishna
 
PPTX
Using mule with web services
Shanky Gupta
 
PPTX
Mule soft ppt 2
Vinoth Moorthy
 
PPTX
Create web services jax - ws3
Antonio Pellegrino
 
PPTX
Mule esb _web_services
Naresh Naidu
 
PPTX
Mule esb whole_web_services
Naresh Naidu
 
PPTX
Mule webservices
chandu1443
 
PPTX
Mule esb soap_service
Davide Rapacciuolo
 
PPT
Mule web services
Thang Loi
 
PPTX
Mule esb soap_service
Gennaro Spagnoli
 
PPT
Mule and web services
venureddymasu
 
PDF
Spring Web Service, Spring Integration and Spring Batch
Eberhard Wolff
 
PPTX
Validate Soap Request in Mule
irfan1008
 
PPTX
Validating a soap request in mule
Khan625
 
PPTX
Validating a soap request in mule
AbdulImrankhan7
 
PPTX
Validating soap request in mule
javeed_mhd
 
PPTX
Validating soap request in mule
mdfkhan625
 
PPTX
Validate soap request in mule
Sunil Komarapu
 
PPTX
Soap request in mule
Praneethchampion
 
Soap Component
sivachandra mandalapu
 
How to use soap component
RaviRajuRamaKrishna
 
Using mule with web services
Shanky Gupta
 
Mule soft ppt 2
Vinoth Moorthy
 
Create web services jax - ws3
Antonio Pellegrino
 
Mule esb _web_services
Naresh Naidu
 
Mule esb whole_web_services
Naresh Naidu
 
Mule webservices
chandu1443
 
Mule esb soap_service
Davide Rapacciuolo
 
Mule web services
Thang Loi
 
Mule esb soap_service
Gennaro Spagnoli
 
Mule and web services
venureddymasu
 
Spring Web Service, Spring Integration and Spring Batch
Eberhard Wolff
 
Validate Soap Request in Mule
irfan1008
 
Validating a soap request in mule
Khan625
 
Validating a soap request in mule
AbdulImrankhan7
 
Validating soap request in mule
javeed_mhd
 
Validating soap request in mule
mdfkhan625
 
Validate soap request in mule
Sunil Komarapu
 
Soap request in mule
Praneethchampion
 

Recently uploaded (20)

PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 

Mulesoft Soap Service

  • 1. Mulesoft | Soap Service - Ujjawal Kant Exposing a Mule Soap Service (Xml Only) from an Abstract WSDL
  • 2. In this slide we will focus on exposing a soap web service using Mule. If we have the concrete WSDL handy, its just a simple configuration that is required and you can jump to Slide X (Step 2) in this case. We will divide our approach into two steps: • Step 1 - Create a concrete WSDL from the Schema definitions and abstract WSDL. WSDL. • Step 2 - It will focus on using the concrete WSDL created in Step 1 and expose the the service eventually.
  • 3. Step 1 • We need to first have the Schema definitions and Abstract WSDL in place. • Lets create a new mule project named calculator and place xsd resource under src/main/resources/schemas • Please find the code snippet for calculator.xsd and calculator.wsdl in the next slides. (We should be aware of creating our xsd and wsdl resources using eclipse)
  • 4. calculator.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.mule.com/schemas/calculator" targetNamespace="http://www.mule.com/schemas/calculator" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Calculator"> <xs:complexType> <xs:sequence> <xs:element name="Numbers"> <xs:complexType> <xs:sequence> <xs:element name="Number1" type="xs:decimal" /> <xs:element name="Number2" type="xs:decimal" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Result"> <xs:complexType> <xs:sequence> <xs:element name="Value" type="xs:decimal"/> <xs:element name="Status" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Fault"> <xs:complexType> <xs:sequence> <xs:element name="Code" type="xs:string"/> <xs:element name="Message" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
  • 5. calculator.wsdl <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns="http://www.mule.com/schemas/calculat or" xmlns:tns="http://www.mule.com/calculator/v0.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.mule.com/calculat or/v0.1"> <import namespace="http://www.mule.com/schemas../sch emas/calculator" location="Calculator.xsd"/> <message name="AddInput"> <part element="ns:Calculator" name="part1"/> </message> <message name="AddOutput"> <part element="ns:Result" name="part1"/> </message> <message name="SubInput"> <part element="ns:Calculator" name="part1"/> </message> <message name="SubOutput"> <part element="ns:Result" name="part1"/> </message> <message name="MulInput"> <part element="ns:Calculator" name="part1"/> </message> <message name="MulOutput"> <part element="ns:Result" name="part1"/> </message> <message name="DivInput"> <part element="ns:Calculator" name="part1"/> </message> <message name="DivOutput"> <part element="ns:Result" name="part1"/> </message> <message name="Fault"> <part name="part1" element="ns:Fault"/> </message> <portType name="CalculatorPort"> <operation name="Add"> <input message="tns:AddInput"/> <output message="tns:AddOutput"/> <fault name="fault1" message="tns:Fault"/> </operation> <operation name="Sub"> <input message="tns:SubInput"/> <output message="tns:SubOutput"/> <fault name="fault1" message="tns:Fault"/> </operation> <operation name="Mul"> <input message="tns:MulInput"/> <output message="tns:MulOutput"/> <fault name="fault1" message="tns:Fault"/> </operation> <operation name="Div"> <input message="tns:DivInput"/> <output message="tns:DivOutput"/> <fault name="fault1" message="tns:Fault"/> </operation> </portType> </definitions>
  • 6. Mule flow for Step 1: • Lets create our Mule Flow for Step 1. This will involve having a Http Connector followed by CXF component. • Configure the Http Connector first, having the Base Uri with the soap address we want to keep in our concrete wsdl. • Next drag and drop CXF Soap activity ; Below is the flow so far. Select JAX-WS service from the Operation drop down available in CXF component.
  • 7. calculatorFlow…. • Refer to the below snap shot to generate the related java files using the abstract wsdl, in the CSF soap component.
  • 8. calculatorFlow…. • Once the necessary java files are generated in calculatorservcie package, we would get a folder structure as shown below : • Once the java files are intact, drop the Java Component after the CXF component.
  • 9. calculatorFlow…. • We need to add the ServiceImplementation class file for this Java component. Under the Class Name tab, Click Add and give a name to the ServiceImplementation java file (CalculatorServiceImpl in our case) as well as select the package and the Interface name. • Also browse the Interface which was generated in Slide 8, Browse CalculatorPort.java
  • 10. calculatorFlow…. • Below is our flow from Step 1 .You can notice the error visible in the previous slide has disappeared now • Run the mule flow, once it is deployed, use the below url over IE/ (any browser) to retrieve the concrete wsdl. Save the concrete wsdl. Do modifications to the soap action of the operations as required. We will use the same soap actions in the choice block of our mule flow to discriminate the operations. • http://localhost:8899/Calculator?wsdl [Port Used in Http connector was 8899 and /Calculator was the base uri] • We would receive the full concrete wsdl as a response on our browser. We just need to tweak the wsdl to add soap actions in the operations.
  • 12. calculatorFlow…. • Below is the modified concrete wsdl with the highlighted additions:
  • 13. Step 2 • Once we have the concrete wsdl ready. Place the concrete wsdl under src/main/wsdl location in your mule project • We will create a new mule flow “calculatorServiceFlow”. Drag and drop Http and CXF components and select Proxy Service from the Operations drop down in CXF Soap activity
  • 14. calculatorServiceFlow…. • CXF Activity Configurations: • Get the values of Port, Namespace, Service from the concrete wsdl • An important : Add wsdlLocation=“CalculatorConcrete.wsdl” in the cxf component xml tag, as shown below: • <cxf:proxy-service configuration-ref="CXF_Configuration" port="CalculatorPortPort" namespace="http://www.mule.com/calculator/v0.1" service="CalculatorPortService" payload="body" wsdlLocation="CalculatorConcrete.wsdl" doc:name="CXF"/>
  • 15. calculatorServiceFlow…. • Add a logger post the CXF to print the SOAP Action • Once you run the flow; you can see the SOAP Action printed as:
  • 16. calculatorServiceFlow…. • Add a choice to differentiate the operations and its individual implementation:
  • 17. calculatorServiceFlow…. • Finally run and deploy you service and test it for its execution: • Hope this helps!!