Ich implementiere eine API in WSO2 ESB 5.0, die einen POST mit einem XML-Body akzeptieren soll und ihn dann an einen anderen Webservice mit einem JSON-Body weiterleiten soll, der den ursprünglichen XML-Body enthält ein AttributWSO2 ESB: Ursprüngliche XML-Struktur in JSON-Nutzdaten einfügen
Beispiel:
ich folgenden Körper meiner ESB API schreiben:
<?xml version="1.0" encoding="utf-8"?>
<workorder id="foobar">
<foo/>
</workorder>
Ich erwarte, dass so etwas wie das meine Webservice gepostet folgenden werden:
{
"key1": "value1",
"key2": "value2",
"input" : "<?xml version=\"1.0\" encoding=\"utf-8\"?><workorder id=\"foobar\"><foo/></workorder>"
}
Vorerst durch inSequence sieht so aus:
<inSequence>
<property name="messageType" value="application/xml" scope="axis2"/>
<log level="full"/>
<enrich description="Store workorder">
<source type="body" clone="true"/>
<target type="property" property="SENT_WORKORDER"/>
</enrich>
<payloadFactory media-type="json" description="">
<format>{"key1": "value1", "key2": "value2", "input": "$ctx:SENT_WORKORDER"}</format>
<args/>
</payloadFactory>
<log level="full"/>
<property name="REST_URL_POSTFIX" value="/my/service" scope="axis2" type="STRING" description="Set URL"/>
<send>
<endpoint key="conf:/endpoints/my_endpoint"/>
</send>
</inSequence>
Es gibt diese:
{
"key1": "value1",
"key2": "value2",
"input" : "[<workorder id="foobar"><foo/></workorder>]"
}
ich keine Ahnung, wie zu verfahren. Alles, was ich will, ist, den rohen Text, den ich gepostet habe, abzurufen (und doppelte Anführungszeichen zu entkommen, damit er in JSON eingefügt werden kann).