如何在Mule without Java Component中使用CXF SOAP服务调用数据库连接器

时间:2014-09-19 18:09:18

标签: database web-services mule mule-studio

我想知道是否在不使用Java组件的情况下调用CXF SOAP Web服务中的Mule数据库连接器。我想创建并公开将执行CRUD操作的SOAP Web服务。 现在,为此,通常的方法是创建一个WSDL,然后将其转换为Java接口,然后实现我需要从Service层调用DAO层以执行数据库操作的接口。 但是在这种情况下,我不想从Java类调用DB Connector ...而是我想从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> 

现在,webservice有几个操作来执行CRUD操作
但我不想从Java类操作中调用数据库。相反,我想从Mule流程中调用数据库来执行CRUD。我该怎么办?

您能否提供一个如何从流量级别实现它的示例...谢谢

2 个答案:

答案 0 :(得分:1)

在Mule 3.4及更早版本中,使用JDBC Transport:http://www.mulesoft.org/documentation/display/current/JDBC+Transport+Reference

在Mule 3.5及之后,使用数据库连接器:http://www.mulesoft.org/documentation/display/current/Database+Connector

答案 1 :(得分:0)

所以,正如David提出的最终解决方案我发现在<cxf:jaxws-service/>之后使用Mule 3.5 DB组件引用了如下界面: -

<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>

它有效!!!