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

What's hot

Mule with stored procedure
Mule with stored procedureMule with stored procedure
Mule with stored procedure
mdfkhan625
 
Testing mule
Testing   muleTesting   mule
Testing mule
Sindhu VL
 
Web service vm in mule
Web service vm in muleWeb service vm in mule
Web service vm in mule
Mohammed246
 
Stored procedure in Mule
Stored procedure in MuleStored procedure in Mule
Stored procedure in Mule
Khasim Saheb
 
Mule soap
Mule soapMule soap
Mule soap
Khasim Saheb
 
Scatter gatherinmule
Scatter gatherinmuleScatter gatherinmule
Scatter gatherinmule
F K
 
Mule integration
Mule integrationMule integration
Mule integration
Son Nguyen
 
How muleworks
How muleworksHow muleworks
How muleworks
Khadhar Koneti
 
Vm component in mule
Vm component in muleVm component in mule
Vm component in mule
javeed_mhd
 
Using groovy in mule
Using groovy in muleUsing groovy in mule
Using groovy in mule
Son Nguyen
 
Soap In Mule
Soap In MuleSoap In Mule
Soap In Mule
Bui Kiet
 
Mule batch job
Mule batch jobMule batch job
Mule batch job
Anirban Sen Chowdhary
 
Mule Esb Introduction
Mule Esb IntroductionMule Esb Introduction
Mule Esb Introduction
AbdulImrankhan7
 
Creating dynamic json in Mule
Creating dynamic json in MuleCreating dynamic json in Mule
Creating dynamic json in Mule
F K
 
Mule soap
Mule soapMule soap
Mule soap
D.Rajesh Kumar
 
Mule ESB - Mock Salesforce Interface
Mule ESB - Mock Salesforce InterfaceMule ESB - Mock Salesforce Interface
Mule ESB - Mock Salesforce Interface
krishananth
 
Junit in mule demo
Junit in mule demo Junit in mule demo
Junit in mule demo
javeed_mhd
 
Scatter gather flow in mule
Scatter gather flow in muleScatter gather flow in mule
Scatter gather flow in mule
Son Nguyen
 
Flows and subflows in mule
Flows and subflows in muleFlows and subflows in mule
Flows and subflows in mule
Sindhu VL
 
Mule with composite source
Mule with composite sourceMule with composite source
Mule with composite source
Anirban Sen Chowdhary
 

What's hot (20)

Mule with stored procedure
Mule with stored procedureMule with stored procedure
Mule with stored procedure
 
Testing mule
Testing   muleTesting   mule
Testing mule
 
Web service vm in mule
Web service vm in muleWeb service vm in mule
Web service vm in mule
 
Stored procedure in Mule
Stored procedure in MuleStored procedure in Mule
Stored procedure in Mule
 
Mule soap
Mule soapMule soap
Mule soap
 
Scatter gatherinmule
Scatter gatherinmuleScatter gatherinmule
Scatter gatherinmule
 
Mule integration
Mule integrationMule integration
Mule integration
 
How muleworks
How muleworksHow muleworks
How muleworks
 
Vm component in mule
Vm component in muleVm component in mule
Vm component in mule
 
Using groovy in mule
Using groovy in muleUsing groovy in mule
Using groovy in mule
 
Soap In Mule
Soap In MuleSoap In Mule
Soap In Mule
 
Mule batch job
Mule batch jobMule batch job
Mule batch job
 
Mule Esb Introduction
Mule Esb IntroductionMule Esb Introduction
Mule Esb Introduction
 
Creating dynamic json in Mule
Creating dynamic json in MuleCreating dynamic json in Mule
Creating dynamic json in Mule
 
Mule soap
Mule soapMule soap
Mule soap
 
Mule ESB - Mock Salesforce Interface
Mule ESB - Mock Salesforce InterfaceMule ESB - Mock Salesforce Interface
Mule ESB - Mock Salesforce Interface
 
Junit in mule demo
Junit in mule demo Junit in mule demo
Junit in mule demo
 
Scatter gather flow in mule
Scatter gather flow in muleScatter gather flow in mule
Scatter gather flow in mule
 
Flows and subflows in mule
Flows and subflows in muleFlows and subflows in mule
Flows and subflows in mule
 
Mule with composite source
Mule with composite sourceMule with composite source
Mule with composite source
 

Viewers also liked

Java in mule part 3
Java in mule part 3Java in mule part 3
Java in mule part 3
vasanthii9
 
Routing in mule
Routing in muleRouting in mule
Routing in mule
vasanthii9
 
Mule saas
Mule  saasMule  saas
Mule saas
himajareddys
 
Java in mule part 2
Java in mule part 2Java in mule part 2
Java in mule part 2
vasanthii9
 
Mule Message Properties Component
Mule Message Properties ComponentMule Message Properties Component
Mule Message Properties Component
Durga Prasad Kakarla
 
Git hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studioGit hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studio
Sudha Ch
 
Enabling Security For ActiveMQ JMX Access
Enabling Security For ActiveMQ JMX AccessEnabling Security For ActiveMQ JMX Access
Enabling Security For ActiveMQ JMX Access
Ramakrishna Narkedamilli
 
Mule management console installation with Tomcat
Mule management console installation with TomcatMule management console installation with Tomcat
Mule management console installation with Tomcat
Sudha Ch
 
Mule enricher
Mule enricher Mule enricher
Mule enricher
Ravinder Singh
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with mule
Govind Mulinti
 
Anypoint Platform Deployment Strategies
Anypoint Platform Deployment StrategiesAnypoint Platform Deployment Strategies
Anypoint Platform Deployment Strategies
Govind Mulinti
 
Mule
MuleMule
Mule with quartz
Mule with quartzMule with quartz
Mule with quartz
Khan625
 
Drools in Mule
Drools in MuleDrools in Mule
Drools in Mule
Mohammed246
 
Mule soft esb – data validation best practices
Mule soft esb – data validation best practicesMule soft esb – data validation best practices
Mule soft esb – data validation best practices
alfa
 
Telling the world why we love mule soft!
Telling the world why we love mule soft!Telling the world why we love mule soft!
Telling the world why we love mule soft!
Sudha Ch
 
Vm component in mule demo
Vm component in mule demoVm component in mule demo
Vm component in mule demo
Sudha Ch
 
Fetch records from mysql using mule esb
Fetch records from mysql using mule esbFetch records from mysql using mule esb
Fetch records from mysql using mule esb
AnilKumar Etagowni
 
Until successful component in mule demo
Until successful component in mule demoUntil successful component in mule demo
Until successful component in mule demo
Sudha Ch
 
Mule Esb
Mule EsbMule Esb
Mule Esb
javeed_mhd
 

Viewers also liked (20)

Java in mule part 3
Java in mule part 3Java in mule part 3
Java in mule part 3
 
Routing in mule
Routing in muleRouting in mule
Routing in mule
 
Mule saas
Mule  saasMule  saas
Mule saas
 
Java in mule part 2
Java in mule part 2Java in mule part 2
Java in mule part 2
 
Mule Message Properties Component
Mule Message Properties ComponentMule Message Properties Component
Mule Message Properties Component
 
Git hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studioGit hub plugin setup and working with Git hub on anypoint studio
Git hub plugin setup and working with Git hub on anypoint studio
 
Enabling Security For ActiveMQ JMX Access
Enabling Security For ActiveMQ JMX AccessEnabling Security For ActiveMQ JMX Access
Enabling Security For ActiveMQ JMX Access
 
Mule management console installation with Tomcat
Mule management console installation with TomcatMule management console installation with Tomcat
Mule management console installation with Tomcat
 
Mule enricher
Mule enricher Mule enricher
Mule enricher
 
Microservices with mule
Microservices with muleMicroservices with mule
Microservices with mule
 
Anypoint Platform Deployment Strategies
Anypoint Platform Deployment StrategiesAnypoint Platform Deployment Strategies
Anypoint Platform Deployment Strategies
 
Mule
MuleMule
Mule
 
Mule with quartz
Mule with quartzMule with quartz
Mule with quartz
 
Drools in Mule
Drools in MuleDrools in Mule
Drools in Mule
 
Mule soft esb – data validation best practices
Mule soft esb – data validation best practicesMule soft esb – data validation best practices
Mule soft esb – data validation best practices
 
Telling the world why we love mule soft!
Telling the world why we love mule soft!Telling the world why we love mule soft!
Telling the world why we love mule soft!
 
Vm component in mule demo
Vm component in mule demoVm component in mule demo
Vm component in mule demo
 
Fetch records from mysql using mule esb
Fetch records from mysql using mule esbFetch records from mysql using mule esb
Fetch records from mysql using mule esb
 
Until successful component in mule demo
Until successful component in mule demoUntil successful component in mule demo
Until successful component in mule demo
 
Mule Esb
Mule EsbMule Esb
Mule Esb
 

Similar to Mulesoft Soap Service

Writing simple web services in java using eclipse editor
Writing simple web services in java using eclipse editorWriting simple web services in java using eclipse editor
Writing simple web services in java using eclipse editor
Santosh Kumar Kar
 
Building A Simple Web Service With CXF
Building A Simple Web Service With CXFBuilding A Simple Web Service With CXF
Building A Simple Web Service With CXF
Carl Lu
 
How to – wrap soap web service around a database
How to – wrap soap web service around a databaseHow to – wrap soap web service around a database
How to – wrap soap web service around a database
Son Nguyen
 
Azure App Service for Windows Container
Azure App Service for Windows ContainerAzure App Service for Windows Container
Azure App Service for Windows Container
Krunal Trivedi
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestration
Mo Rawi
 
MuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
MuleSoft Consuming Soap Web Service - CXF jax-ws-client ModuleMuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
MuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
Vince Soliza
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
Mauro Parra-Miranda
 
Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s
Ranjeet Bhargava
 
Hands-on Lab: Migrating Oracle to PostgreSQL
Hands-on Lab: Migrating Oracle to PostgreSQL Hands-on Lab: Migrating Oracle to PostgreSQL
Hands-on Lab: Migrating Oracle to PostgreSQL
Amazon Web Services
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
Mohammed246
 
Cache for community edition
Cache for community edition Cache for community edition
Cache for community edition
javeed_mhd
 
Community edition Cache
Community edition CacheCommunity edition Cache
Community edition Cache
Praneethchampion
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
F K
 
Cache community edition
Cache community edition Cache community edition
Cache community edition
AbdulImrankhan7
 
Cache for community edition
Cache for community edition Cache for community edition
Cache for community edition
mdfkhan625
 
Cache for community edition
Cache for community edition Cache for community edition
Cache for community edition
Khasim Saheb
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platform
Nicola Ferraro
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
irfan1008
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
Hasan Syed
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
Sunil Komarapu
 

Similar to Mulesoft Soap Service (20)

Writing simple web services in java using eclipse editor
Writing simple web services in java using eclipse editorWriting simple web services in java using eclipse editor
Writing simple web services in java using eclipse editor
 
Building A Simple Web Service With CXF
Building A Simple Web Service With CXFBuilding A Simple Web Service With CXF
Building A Simple Web Service With CXF
 
How to – wrap soap web service around a database
How to – wrap soap web service around a databaseHow to – wrap soap web service around a database
How to – wrap soap web service around a database
 
Azure App Service for Windows Container
Azure App Service for Windows ContainerAzure App Service for Windows Container
Azure App Service for Windows Container
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestration
 
MuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
MuleSoft Consuming Soap Web Service - CXF jax-ws-client ModuleMuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
MuleSoft Consuming Soap Web Service - CXF jax-ws-client Module
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s
 
Hands-on Lab: Migrating Oracle to PostgreSQL
Hands-on Lab: Migrating Oracle to PostgreSQL Hands-on Lab: Migrating Oracle to PostgreSQL
Hands-on Lab: Migrating Oracle to PostgreSQL
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
 
Cache for community edition
Cache for community edition Cache for community edition
Cache for community edition
 
Community edition Cache
Community edition CacheCommunity edition Cache
Community edition Cache
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
 
Cache community edition
Cache community edition Cache community edition
Cache community edition
 
Cache for community edition
Cache for community edition Cache for community edition
Cache for community edition
 
Cache for community edition
Cache for community edition Cache for community edition
Cache for community edition
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platform
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
 
Cache for community edition
Cache for community editionCache for community edition
Cache for community edition
 

Recently uploaded

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 

Recently uploaded (20)

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 

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!!
  • 18. Thank you. - Ujjawal Kant - leoujjawal@gmail.com