Mule Runtime 3.6 and later version have deprecated old Http Connector with , new Http Listener Config . Let's take an example to see how we can use it .This example also demonstrates how to get a particular xml element without using JAXB .
This example app will listen to a particular host and port , for post method , and parses the request xml using xpath . Based on the xml , we return the response based on the input xml received in request .
This is our mule config xml :
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="CE-3.6.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> <http:listener-config port="8081" host="0.0.0.0" name="myRequestConfig" > <http:worker-threading-profile maxThreadsActive="15"/> </http:listener-config> <flow name="SimpleTest" > <http:listener path="/abc" config-ref="myRequestConfig" allowedMethods="PATCH"/> <logger category="d" level="ERROR" message="xpath: #[xpath3('/isCancelled')]"/> <choice > <when expression="#[xpath3('/isCancelled') == 'true']"> <set-payload value="SUCCESSS"></set-payload> </when> <otherwise> <set-payload value="FAIL"></set-payload> </otherwise> </choice> </flow> </mule>Now we can see that traditional http inbound endpoint and http connector is replaced with Http Listener and Http Listener Config respectively . The major difference is that we can not use service overrides in Http listener config like we used to do in http connector , also http listener does not return MULE_SESSION in response headers .If we use http listener , all outbound property will automatically be converted in http response headers . You can use allowedMethods attribute to configure different Http methods . We can have multiple http listener , referencing to same listener config . Multiple flows with same path but different methods is also allowed . Post Comments And Suggestions .!!!