0
私はXMLを返すサービスを呼び出しています。私は、各イベントid(通常は2)にサービスを呼び出し、dataweaveを使用して2つのxmlを1つの結果にステッチする必要があります。Mule - For Each&Message Enricherの後にXMLをつなぐ
私の流れは、XML形式の結果をタイプorg.glassfish.grizzly.utils.BufferInputStreamとして配列に入れています。
XMLとして出力する方法について、少し混乱しています。私は運がないXMLにオブジェクトのような様々な変圧器を試してみました。
私の現在のデータ・ウィーブ・トランスフォーマーは、xmlの結果を正しいxmlフォーマットを持たない文字列として出力し、xmlノードにアクセスしようとすると型変換エラーを返します。
Sample XML:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xml>
<result>
<event>
<id>1</id>
<name>Item 1</name>
<title>Item 1 title</title>
</event>
</result>
</xml>
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xml>
<result>
<event>
<id>2</id>
<name>Item 2</name>
<title>Item 2 title</title>
</event>
</result>
</xml>
ラバフロー:あなたの変換後
<logger message="Payload: #[message.payloadAs(java.lang.String)]" level="INFO"/>
:
Mule Flow:
<flow name="eventsFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/eventsTest" doc:name="HTTP"/>
<set-variable variableName="event" value="#[{'1','2'}]" doc:name="Event ID's"/>
<set-variable variableName="results" value="#[new java.util.ArrayList()]" doc:name="Results"/>
<foreach collection="#[flowVars['event']]" doc:name="For Each">
<enricher target="#[results.add($)]" doc:name="Message Enricher">
<http:request config-ref="HTTP_Request_Configuration" path="/api_xml/api_xml.php?function=get_personal_results&event_id=#[flowVars.event]&key=INSERT_KEY_HERE" method="GET" metadata:id="dfa451b2-1ad5-4b27-bed9-841e5d0995b8" doc:name="Result Request"/>
</enricher>
</foreach>
<set-payload value="#[flowVars.results]" doc:name="Payload"/>
<dw:transform-message metadata:id="3875f88d-e232-42e7-93c9-184baf7c216f" doc:name="Transform Message">
<dw:set-payload><![CDATA[
%dw 1.0
%output application/xml
---
xml: {
(payload map {
result: {
event: $
}
}
)
}]]></dw:set-payload>
</dw:transform-message>
</flow>
こんにちはチャド、ロガー出力:ペイロード:[org.glassfish.grizzly.uti [email protected]、[email protected] 70c76]。私はただHTTPリクエストに出力しようとしています。 – Steve