2016-01-04 3 views
0

новичок в WSO2, но пытается сделать что-то, что должно быть относительно простым даже для непосвященных, прежде чем у меня возникнет трещина в каком-либо посредстве xslt в прокси-сервере wso2.Форма конечной точки WSO2

Все, что я пытаюсь сделать в качестве первого шага, это изменение транспорта между клиентом wso2 (jms) и конечной точкой (http). Клиент отправляет полный конверт с мылом в полезную нагрузку JMS. Я вижу, что моя конечная точка вызывается из журналов сервера (однако я вижу, что запросы отклоняются). Конечно, из журналов прокси видно, что WSO2 добавляет дополнительную оболочку оболочки SOAP вокруг полезной нагрузки от клиента.

Я понимаю, что это необходимо исправить, установив для атрибута формата конечной точки «оставить как есть». Однако это не имеет значения. Я подозреваю, что это простая настройка конечной точки или прокси-конфигурации, вместо того, чтобы требовать некоторого посредничества xsl? Любое guidnace благодарностью:

мой код:

Endpoint:

<endpoint xmlns="http://ws.apache.org/ns/synapse"> 
    <address uri="http://d26li228.au.alcatel-lucent.com:44006/ilws/InstantLinkSOA"> 
     <suspendOnFailure> 
     <progressionFactor>1.0</progressionFactor> 
     </suspendOnFailure> 
     <markForSuspension> 
     <retriesBeforeSuspension>0</retriesBeforeSuspension> 
     <retryDelay>0</retryDelay> 
     </markForSuspension> 
    </address> 
</endpoint> 

Proxy:

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="McProxy3" 
     transports="McJMS" 
     statistics="disable" 
     trace="enable" 
     startOnLoad="true"> 
    <target> 
     <inSequence> 
     <log level="full"/> 
     <property name="OUT_ONLY" value="true"/> 
     <send> 
      <endpoint key="conf:/ilepr"/> 
     </send> 
     </inSequence> 
     <outSequence> 
     <send/> 
     </outSequence> 
    </target> 
    <parameter name="transport.jms.Destination">McQueue</parameter> 
    <description/> 
</proxy> 

ответ

0

Установить тип содержимого сообщения, которое вы получаете от JMS: если есть уже SOAP-конверт, это текст/xml:

<parameter name="transport.jms.ContentType"> 
    <rules xmlns=""> 
     <jmsProperty>contentType</jmsProperty> 
     <default>text/xml</default> 
    </rules> 
</parameter> 

Если сервис вы звоните через конечную точку ожидания soap11 или soap12, вы можете установить этот формат в вашем определении конечной точки (не позволяйте «оставить как есть»)

Вы определили OUT_ONLY истины внутри вашего inSequence, прежде чем отправлять свое сообщение через конечную точку: ESB не будет препятствовать обратному вызову и не получит никакого ответа (outSequence никогда не будет выполнен)

+0

спасибо за указатель Jean-Michel. Однако это вызвало еще один гремлин. –

+0

К сожалению, слишком быстро нажмите кнопку сохранения - ваше наблюдение (при установке формата явно на soap12) было на месте, поскольку оно предварительно разрешило следующую неподдерживаемую ошибку типа содержимого, сообщаемую сервером! еще раз спасибо. –

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