добавление почтового запроса в мой прокси-сервис WSO2

Я создал прокси-службу, которая преобразует сообщение с помощью посредника xslt, а затем преобразует его в JSON. Теперь я хочу опубликовать сообщение JSON в веб-службе для отдыха. Как я могу сделать это непосредственно в моей прокси-службе? Это мой прокси-сервис:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="CategoryProxy" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <property name="Authorization" expression="fn:concat('Basic ', base64Encode('admin:admin'))" scope="transport" type="STRING"/>
         <send>
            <endpoint>
               <address uri="http://localhost:8068/database/library.author/301"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <xslt key="conf:/ressources/catXsl.xsl"/>
         <property name="messageType" value="application/json" scope="axis2" type="STRING"/>
         <send/>
      </outSequence>
      <faultSequence/>
   </target>
   <description></description>
</proxy>

Я хочу, чтобы сообщение, отправленное этим прокси-сервером, было опубликовано в остальных веб-ресурсах. Как я могу сделать это на своем прокси-сервере?


person Rida    schedule 22.06.2013    source источник


Ответы (1)


Похоже, вы ищете цепочку сервисов, и вы можете сделать это двумя способами:

1) Использование приемной последовательности

  <inSequence>
     <property name="Authorization" expression="fn:concat('Basic ', base64Encode('admin:admin'))" scope="transport" type="STRING"/>
     <send receive="receivingSeqForChaining">
        <endpoint>
           <address uri="http://localhost:8068/database/library.author/301"/>
        </endpoint>
     </send>
  </inSequence>

Вы можете определить любую последовательность операций в этой последовательности приема. Выход из этого будет передан принимающей последовательности. Если вы не хотите выполнять какое-либо конкретное действие в outSequence для этого случая, вы можете просто добавить к нему a.

2) Использование outSequence для запуска другого вызова службы

Вы также можете сделать этот http-вызов непосредственно из outSequence примерно так:

<outSequence>
<send>
            <endpoint>
               <http method="get"
                     uri-template="https://www.abc.com/resource/foo"/>
            </endpoint>
         </send>
</outSequence>

Надеюсь это поможет.

person Rama Kesara    schedule 10.04.2014
comment
Спасибо за помощь Рама - person Rida; 20.04.2014