SOAP USAGE IN MULE
.
We often come across SOAP web services in our
project and often face different challenges in handling
SOAP web services. One such challenge is SOAP request
validation.
IN SIMPLE WORDS IF WE HAVE
THE XSD FILE OF WEB SERVICE
WE CAN VALIDATE THE REQUEST
OF THE WEB SERVICE AGAINST
THAT XSD USING A SCHEMA
VALIDATION FILTER IN MULE..
Yes, I am talking about using message filter to validate a
SOAP request against a given XSD file
Let’s see how…
Let consider we have a SOAP webs ervice exposed in Mule by
following way :-
Now, if we want to validate the request with an XSD file of the
web service and want to throw a custom message in case if the
SOAP request is invalid or incorrect, we need to use schema
validation filter
So after adding schema validation filter in our flow, our
flow looks like the following
We can also add a subflow which will throw custom message if
the SOAP request is invalid as follow :-
So, if we test the webservice with a wrong SOAP request in
SoapUI we will get a custom message :-
This is how the flow works:-
<mulexml:schema-validation-filter name="Schema_Validation"
schemaLocations="MainData.xsd" returnResult="true" doc:name="Schema
Validation" />
The code:-
You need to use schema validation filter which will refer to
your XSD files for validating a SOAP request as follows:-
The Schema Validation Filter uses the JAXP libraries to validate a
message against a schema. You must provide the path, file name, and
extension of the schema or schemas in the Schema Locations property.
<flow name="ServiceFlow" doc:name="ServiceFlow">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost"
port="8082" path="mainData" doc:name="HTTP"/>
<message-filter onUnaccepted="ValidationFailFlow" doc:name="filter to validate
xml against xsd" throwOnUnaccepted="true" >
<filter ref="Schema_Validation"/>
</message-filter>
<cxf:jaxws-service validationEnabled="true"
serviceClass="com.test.services.schema.maindata.v1.MainData"
doc:name="SOAP"/>
<component class="com.test.services.schema.maindata.v1.Impl.MainDataImpl"
doc:name="JavaMain_ServiceImpl"/>
</flow>
A code snipped of the Mule config:-
To get the full code access for implementing a SOAP Request
validator in Mule, please visit :-
http://anirbansenchowdhary.com/blog/?p=131
You can also visit Mule documentation on Schema Validation
:-
http://www.mulesoft.org/documentation/display/current/Sch
ema+Validation+Filter
Soap in mule

Soap in mule

  • 1.
  • 2.
    . We often comeacross SOAP web services in our project and often face different challenges in handling SOAP web services. One such challenge is SOAP request validation.
  • 3.
    IN SIMPLE WORDSIF WE HAVE THE XSD FILE OF WEB SERVICE WE CAN VALIDATE THE REQUEST OF THE WEB SERVICE AGAINST THAT XSD USING A SCHEMA VALIDATION FILTER IN MULE.. Yes, I am talking about using message filter to validate a SOAP request against a given XSD file
  • 4.
    Let’s see how… Letconsider we have a SOAP webs ervice exposed in Mule by following way :-
  • 5.
    Now, if wewant to validate the request with an XSD file of the web service and want to throw a custom message in case if the SOAP request is invalid or incorrect, we need to use schema validation filter
  • 6.
    So after addingschema validation filter in our flow, our flow looks like the following
  • 7.
    We can alsoadd a subflow which will throw custom message if the SOAP request is invalid as follow :-
  • 8.
    So, if wetest the webservice with a wrong SOAP request in SoapUI we will get a custom message :-
  • 9.
    This is howthe flow works:-
  • 10.
    <mulexml:schema-validation-filter name="Schema_Validation" schemaLocations="MainData.xsd" returnResult="true"doc:name="Schema Validation" /> The code:- You need to use schema validation filter which will refer to your XSD files for validating a SOAP request as follows:- The Schema Validation Filter uses the JAXP libraries to validate a message against a schema. You must provide the path, file name, and extension of the schema or schemas in the Schema Locations property.
  • 11.
    <flow name="ServiceFlow" doc:name="ServiceFlow"> <http:inbound-endpointexchange-pattern="request-response" host="localhost" port="8082" path="mainData" doc:name="HTTP"/> <message-filter onUnaccepted="ValidationFailFlow" doc:name="filter to validate xml against xsd" throwOnUnaccepted="true" > <filter ref="Schema_Validation"/> </message-filter> <cxf:jaxws-service validationEnabled="true" serviceClass="com.test.services.schema.maindata.v1.MainData" doc:name="SOAP"/> <component class="com.test.services.schema.maindata.v1.Impl.MainDataImpl" doc:name="JavaMain_ServiceImpl"/> </flow> A code snipped of the Mule config:-
  • 12.
    To get thefull code access for implementing a SOAP Request validator in Mule, please visit :- http://anirbansenchowdhary.com/blog/?p=131 You can also visit Mule documentation on Schema Validation :- http://www.mulesoft.org/documentation/display/current/Sch ema+Validation+Filter