2016-10-28 4 views
1

Недавно у меня возникла проблема с wso2 esb, которую я не могу решить (может быть, ошибка). Я попытаюсь объяснить это как можно более ясно.WSO2 REST прокси ответ с SOAP вместо REST

Я использую wso2 ESB с прокси-сервером для связи, чтобы связаться с внешним интерфейсом для службы резервного копирования.

Я определил остальное прокси с конечной точкой, как это и он работал отлично:

<endpoint> 
     <address uri="http://127.0.0.1:8099/DummyRestServiceWSO2"/> 
</endpoint> 

Но наша цель состоит в том, чтобы интегрировать WSO2 ESB в контейнере внутри среды OpenShift. В openshift ip устанавливаются динамически, но доступны через переменную системной среды. Так что я пытался решить мою конечную точку динамически byusing тега заголовка:

<endpoint> 
     <default/> 
</endpoint> 
<inSequence> 
<script language="js">mc.setProperty("url",java.lang.System.getenv("HOST_IP"));</script> 
<property name="service_url" expression="fn:concat(get-property(url),'/DummyRestServiceWSO2')"/> 
<header name="To" expression="get-property('service_ep')"/> 
<send/> 
</inSequence> 

Где host_ip определяется как: http://127.0.0.1:8099

Так как я сделал это изменить мой призыв к службе бэкенда отдыха по-прежнему работают нормально, но ответ вызывающему (frontend) теперь отформатирован как мыло (я попытался нарисовать проблему, see attachment).

Большое спасибо за вашу помощь, и я желаю удивительный день, чтобы тот, кто прочитал этот пост :)

ответ

0

Если под «REST» вы имеете в виду формат «JSON», просто определить это свойство перед отправкой обратно в réponse клиент:

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

Использование application/xml для простого XML (не SOAP конверт/тела)

Вы также можете использовать конечную точку по умолчанию в посыла посредника и определить формат:

<send> 
    <endpoint> 
    <default format="rest"> 
     <timeout> 
     <responseAction>fault</responseAction> 
     </timeout> 
    </default> 
    </endpoint> 
</send> 
+0

Спасибо за ввод. На самом деле это не помогло, но я мог найти, как решить проблему: тег после того, как заголовок тега нужно удалить, тогда он работает –

Смежные вопросы