Invoke Component in Mule | Call Java Class in Mule




Invoke Component in Mule | Call Java Class in Mule

Invoke component is used to invoke java class in Mule.

flow of Invoke component :




First of all write a simple java class containing a method to perform an operation.

We have TestInvoke.java class located in src/main/java




package com.test;

public class TestInvoke {

String str = null;

public String a(String str) {
System.out.println("Hello Himanshu" + " " + str);
this.str = str;

return "Hello Himanshu" + ' ' + str;
}

}



It will take payload which is passed as argument in method 'a'.

Invoke component configuration :


We have to give Bean defination of our java class in configuration XML.

   <spring:beans>
       <spring:bean class="com.test.TestInvoke" name="testInvoke"></spring:bean>
   </spring:beans>


URL : http://localhost:8085/api/invoke
Method : POST


Input :



Output :



XML project code : 


<?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" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="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://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
     <spring:beans>
    <spring:bean class="com.test.TestInvoke" name="testInvoke"></spring:bean>
    </spring:beans>
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" basePath="/api" doc:name="HTTP Listener Configuration"/>
    <flow name="test_invokeFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/invoke" doc:name="HTTP"/>
        <invoke object-ref="testInvoke" method="a" doc:name="Invoke" name="invoke" methodArguments="#[payload]"/>
    </flow>
</mule>