Преобразование POX в сообщение SOAP в WSO2 - PullRequest
0 голосов
/ 24 сентября 2019

Я использую API-интерфейс шлюза в WSO2 ESB, чтобы адаптировать входящие запросы к моему внутреннему сервису.Внутренний сервис принимает только сообщения POX с предопределенным форматом.Я хочу дать клиентам возможность отправлять SOAP-запросы для получения информации от моего внутреннего сервиса.

Я собираюсь использовать посредник с полезной нагрузкой, но я не уверен, что это лучшее решение.

Мой типичный внутренний запрос выглядит следующим образом:

<methodCall>
<member>
<name>ABC</name>
<value>abc</value>
</member>
<member>
<name>XYZ</name>
<value>xyz</value>
</member>
</methodCall>

И я хочу, чтобы мой API был отправлен следующим образом:

<soap:body>
<ABC>abc</ABC>
<XYZ>xyz</XYZ>
</soap:body>

другими словами, a в моем запросе POX представляет объект с «именем» и «значением», и я хочу записать его в SOAP как «имя» (значение) "/ name".

Можете ли вы помочь, пожалуйста?

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете использовать фабрику полезной нагрузки для создания нового сообщения и 'send' с format = "soap11" для добавления конверта мыла.Это будет выглядеть примерно так:

    <inSequence>
      <payloadFactory media-type="xml">
            <format>
            <test>
                <ABC>$1</ABC>
                <XYZ>$2</XYZ>
            </format>
            </test>
            <args>
                <arg expression="//value[0]"/>
                <arg expression="//value[1]"/>
            </args>
      </payloadFactory>

      <send>
        <endpoint>
           <address format="soap11"  uri="http://youruri" />
        </endpoint>
      </send>
   </inSequence>
...