gpt4 book ai didi

xml - 骡子相同的有效载荷在不同的条件下以不同的格式显示在记录器中

转载 作者:行者123 更新时间:2023-12-03 17:14:09 26 4
gpt4 key购买 nike

我有骡子流:-

<jdbc-ee:connector name="Database_Global" dataSource-ref="DB_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database">
<jdbc-ee:query key="UpdateQuerySOAPRequest" value="UPDATE getData SET ID=#[xpath('//v1:Id').text], NAME=#[xpath('//v1:Name').text], AGE=#[xpath('//v1:Age').text], DESIGNATION = #[xpath('//v1:Designation').text] where ID=#[xpath('//v1:Id').text]"/>
</jdbc-ee:connector>
<flow name="NodeNameFlow" doc:name="NodeNameFlow" initialState="started">
<file:inbound-endpoint responseTimeout="10000" connector-ref="File_Input" doc:name="File" path="E:\backup\test">
<file:filename-regex-filter pattern="XMLRequest.xml" caseSensitive="false"/>
</file:inbound-endpoint>
<splitter evaluator="xpath" expression="//v1:updateDataRequest" doc:name="Splitter_For_MultipleSameNodes"/>
<mulexml:dom-to-xml-transformer name="DomToXmlSOAPUpdate2" doc:name="Dom To XmlSOAPUpdate"/>
<jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="UpdateQuerySOAPRequest" queryTimeout="-1" connector-ref="Database_Global" doc:name="Database (JDBC)"/>

<choice doc:name="Choice">
<when expression="#[flowVars['MULE_JDBC_UPDATE_COUNT']==0]"> <!-- If not updated -->
<logger message="Updated #[flowVars['MULE_JDBC_UPDATE_COUNT']] rows... Failed!!! No rows were Updated" level="INFO" doc:name="Logger"/>
</when>
<otherwise> <!-- if updated -->
<set-payload value="Updated Successfully !!!" doc:name="Set Payload"/>
</otherwise>
</choice>

<mulexml:object-to-xml-transformer doc:name="Object to XML"></mulexml:object-to-xml-transformer>
<async doc:name="Async_Database_Response_in_File">
<logger message="Request *************************** #[payload:java.lang.String] *************************" level="INFO" doc:name="Logger"/>

<file:outbound-endpoint path="E:\backup\test" outputPattern="SimpleResponse.txt" responseTimeout="10000" doc:name="File" connector-ref="File_Global"/>
</async>

</flow>

现在您可以看到它以 xml 文件作为输入,将其拆分并根据 ID 更新数据库,最后它将有效负载记录在出站文件中 .. .. 如果它能够成功更新数据库,它能够在记录器中显示有效负载 <logger message="Request *************************** #[payload:java.lang.String] *************************" level="INFO" doc:name="Logger"/>最后以正确的方式,如: -
 org.mule.api.processor.LoggerMessageProcessor: Request ***************************<string> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://services.test.com/schema/MainData/V1">
<soapenv:Header/>
<soapenv:Body>
<v1:updateDataRequest>
<v1:Id>1</v1:Id>
<v1:Name>BnnnnnnBB !!!!!</v1:Name>
<v1:Age>66</v1:Age>
<v1:Designation>EEEEEE</v1:Designation>
</v1:updateDataRequest>
</soapenv:Body>
</soapenv:Envelope> </string> *************************

但是,如果它无法根据 ID 更新数据库,它将显示如下所示的有效负载:-
 org.mule.api.processor.LoggerMessageProcessor: Request *************************** <string>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;v1:updateDataRequest xmlns:v1=&quot;http://services.test.com/schema/MainData/V1&quot;&gt;
&lt;v1:Id&gt;1&lt;/v1:Id&gt;
&lt;v1:Name&gt;BnnnnnnBB !!!!!&lt;/v1:Name&gt;
&lt;v1:Age&gt;66&lt;/v1:Age&gt;
&lt;v1:Designation&gt;EEEEEE&lt;/v1:Designation&gt;
&lt;/v1:updateDataRequest&gt;</string> *************************

...
所以我的问题是,如果它无法更新,为什么它会以这种格式显示相同的有效负载..任何建议..是否..我需要以任何格式转换有效负载...任何建议????

最佳答案

仅供引用 #[payload:java.lang.String] 的 MEL 语法是 #[message.payloadAs(java.lang.String)]
流程中有一些不合逻辑的东西:如果成功 set-payload将有效负载设置为非 XML 字符串(即 "Updated Successfully !!!" )。

但是,在 choice 之后mulexml:object-to-xml-transformer启动并尝试将此随机字符串转换为 XML,但实际上无法正常工作。你需要解决这个问题。

关于xml - 骡子相同的有效载荷在不同的条件下以不同的格式显示在记录器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com