0

着信 XML を受け取り、必要な xml 形式を取得するために xslt 変換を実行するプロキシがあります。次に、JSON としてサービスに送信する必要があるため、messageType を application/json として設定しましたが、XML として到着します。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="XSLTTRANSPROXY_BRYN" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <xslt key="gov:/Complete.xsl">
            <property xmlns:ns="http://org.apache.synapse/xsd" name="GUID" expression="fn:substring-after(get-property('MessageID'), 'urn:uuid:')"/>
         </xslt>
        <property name="messageType" value="application/json" scope="axis2"/>
         <log level="full"/>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
      <endpoint>
         <address uri="http://localhost:54150/"/>
      </endpoint>
   </target>
   <description></description>
</proxy>

axis2.xml ファイルでさまざまなタイプのビルダーを試しましたが、結果を変えるものはないようです。現在実行中の WSO2 ESB 4.6.0

4

3 に答える 3

3

コードは次のようになります。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="XSLTTRANSPROXY_BRYN" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <xslt key="gov:/Complete.xsl">
            <property xmlns:ns="http://org.apache.synapse/xsd" name="GUID" expression="fn:substring-after(get-property('MessageID'), 'urn:uuid:')"/>
         </xslt>
        <property name="messageType" value="application/json" scope="axis2"/>
         <log level="full"/>
<send>
<endpoint>
         <address uri="http://localhost:54150/"/>
      </endpoint>
</send>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
         </target>
   <description></description>
</proxy>

また、このドキュメントに記載されているタグを有効にする必要があります: http://docs.wso2.org/wiki/display/ESB403/ESB+and+JSON。json でデータを取得できない場合は、他のブラウザーでサービスを試してください。

于 2013-07-24T08:04:32.767 に答える
1

プロキシは問題なく動作するはずです。設定すると、

<property name="messageType" value="application/json" scope="axis2"/>

メッセージは、メッセージ フォーマッタによって json に変換されます。したがって、送信前にログを記録すると、まだ xml 形式のままです。tcpmon などのツールを使用して、変換されたメッセージを確認できます。

tcpmon を指して、次のサンプルをテストしました。

<proxy name="TestProxy"
          transports="https http"
          startOnLoad="true"
          trace="disable">
      <description/>
      <target>
         <endpoint>
            <address uri="http://localhost:8888/"/>
         </endpoint>
         <inSequence>
            <property name="messageType" value="application/json" scope="axis2"/>
            <log level="full"/>
         </inSequence>
         <outSequence>
            <send/>
         </outSequence>
      </target>
   </proxy>
于 2013-07-24T06:45:42.253 に答える
0

次のリンクの指示に従ってください http://docs.wso2.org/wiki/display/ESB403/ESB+and+JSON

于 2013-07-24T05:20:52.090 に答える