0
votes

I was wondering if there is anyway to invoke Mule Database connector in CXF SOAP webservices without using Java Component .. I want to create and expose a SOAP web service that will perform a CRUD operation. Now, for doing this the general way is to create a WSDL and then convert it into Java interface and then implement the interface where I need to call the DAO layer from Service layer to perform DB operations .. But here in this case, I don't want to call the DB Connector from Java Class... rather I want to call the connector from Mule Flow itself.. Is there any way I can do it from flow level ??

I have following Mule Flow :-

<flow name="getDesignation" doc:name="getDesignation">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8090" path="designation" doc:name="HTTP"/>
<cxf:jaxws-service serviceClass="com.getdesignation.test.services.schema.maindata.v1.GetDesignation" doc:name="CXF"/>
<component class="com.getdesignation.test.services.schema.maindata.v1.Impl.GetDesignationImpl" doc:name="Java"/>
</flow> 

Now the webservice has several operations to perform CRUD operation
But I don't want to call the Database from the Java class operation .. Instead I want to call the DB from the Mule flow it self to perform the CRUD .. How can I do so ?

Can you pls provide an example how to achieve it from flow level ... Thanks

2

2 Answers

0
votes

So, as David suggested the final solution I found using Mule 3.5 DB component after the <cxf:jaxws-service/> which refers the interface something like below :-

<flow name="getDesignation" doc:name="getDesignation">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8090" path="designation" doc:name="HTTP"/>
<cxf:jaxws-service serviceClass="com.getdesignation.test.services.schema.maindata.v1.GetDesignation" doc:name="CXF"/>
<db:select config-ref="Oracle_Configuration" doc:name="Database">
  <db:parameterized-query><![CDATA[select ID, NAME from table1]]></db:parameterized-query>
</db:select>

and it works !!!