将数据库结果作为参数传递给mule中的setpayload组件

将数据库结果作为参数传递给mule中的setpayload组件,mule,mule-studio,mule-el,Mule,Mule Studio,Mule El,我正在使用从oracle数据库检索值,我想将此参数传递给mule ESB 3.4中的setpayload组件 我正在以下面的格式传递我的参数 “[{10,2,有效载荷[0]['rate'],有效载荷[0]['name']}]” 我得到一个参数类型不匹配错误 如何传递参数,请帮助我使用正确的语法 提前谢谢 这是我的xml代码 <jdbc-ee:oracle-data-source name="Oracle_Data_Source" user="abcd" password="123434"

我正在使用从oracle数据库检索值,我想将此参数传递给mule ESB 3.4中的setpayload组件

我正在以下面的格式传递我的参数

“[{10,2,有效载荷[0]['rate'],有效载荷[0]['name']}]”

我得到一个参数类型不匹配错误

如何传递参数,请帮助我使用正确的语法

提前谢谢

这是我的xml代码

<jdbc-ee:oracle-data-source name="Oracle_Data_Source" user="abcd" password="123434" url="jdbc:oracle:thin:@//localhost:1522/xe" transactionIsolation="UNSPECIFIED" doc:name="Oracle Data Source"/>
<jdbc-ee:connector name="Database" dataSource-ref="Oracle_Data_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database">
    <jdbc-ee:query key="Select" value="select applicant_name,rate from interestcalculation where applicant_name = #[message.payload]"/> </jdbc-ee:connector>

<flow name="SetApplicantNameflow" doc:name="SetApplicantNameflow">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP" path="interest"/>
    <set-payload value="kanagaraj" doc:name="ApplicantName"/>
    <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="Select" queryTimeout="-1" connector-ref="Database" doc:name="Applicant Rate"/>
    <logger message="#[payload[0]['RATE']],#[payload[0]['APPLICANT_NAME']]" level="INFO" doc:name="Logger"/>
    <flow-ref name="interestcalcultionflow" doc:name="InterestCalculationFlow Reference"/>
    <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="update" queryTimeout="-1" connector-ref="Database" doc:name="Save interest">
        <jdbc-ee:query key="update" value="update interestcalculation set interest = #[message.payload.interest] where appid= #[message.payload.appid]"/>
    </jdbc-ee:outbound-endpoint>
    <mulexml:object-to-xml-transformer doc:name="Object to XML"/>
</flow>
<sub-flow name="interestcalcultionflow" doc:name="interestcalcultionflow">
    <set-payload value="#[{1,10,payload[0]['RATE'],payload[0]['APPLICANT_NAME']}]" doc:name="Principle,years&amp; Rates"/>
    <cxf:jaxws-client  clientClass="pack.interest.InterestclassService"  doc:name="SOAP" operation="calculateInterest" port="interestclassPort"/>
    <http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://localhost:8080/calculateInterest/services/interestclassPort" doc:name="HTTP"/>
</sub-flow>`

通过执行以下操作,可以使设置的有效负载正常工作

<set-payload value="#[{1,10,(payload[0]['rate']),(payload[0]['applicant_name'])}]"/>

请包括一个完整的流和堆栈跟踪,最好在出现故障的组件之前使用logger打印出有效负载。@AntonKupias Hi用xml格式编辑了我的问题,我将在设置的有效负载中传递我的参数component@AntonKupias或者我想知道如何通过setpayload组件动态传递参数。我很困惑。您的问题涉及将数据库结果传递给set组件,但在您的流中,您尝试将http调用解析为数组,并且您的db查询名为Insert。我也不能说你的流程中发生了什么,因为它主要是对你没有共享的服务/组件的引用。@AntonKupias我编辑了我的代码,现在我得到的错误为空。无法通过终结点org.mule.module.cxf.CxfOutboundMessageProcessor路由事件。消息负载的类型为:Object[]嗯,这可能与您的cxf:jaxws客户端有关,您正在将使用set-payload设置的数组传递到该客户端。您能否提供一个示例来帮助我,例如如何编写或配置cxf:jaxws客户端。@Anon Kupias我发现了错误,我只需要输入cast参数来传递给web服务。谢谢你,安东。