исключение мьюла-сериализации при исходящем вызове

У меня есть простой поток, который имеет входящую конечную точку http. Я пытаюсь использовать исходящий http и получил следующее исключение.

Я могу использовать тот же исходящий трафик непосредственно из пользовательского интерфейса SOAP. Но не удалось позвонить через поток мулов.

java.io.OptionalDataException (org.apache.commons.lang.SerializationException)

Ответ от конечной точки... Внутренняя ошибка сервера, код: 500

    INFO  2014-02-17 07:16:41,234 [[updatecustomer].connector.http.mule.default.receiver.02]
     org.mule.api.processor.LoggerMessageProcessor: Logger ...in main thread
     java.io.OptionalDataException (org.apache.commons.lang.SerializationException)

Надеюсь, что этот необработанный xml поможет определить проблему.

Необработанный XML из ввода пользовательского интерфейса SOAP:

    POST http://localhost:8080/foo3 HTTP/1.1
    Accept-Encoding: gzip,deflate
    Content-Type: text/xml;charset=UTF-8
    SOAPAction: ""
    Content-Length: 2044
    Host: localhost:8080
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

Необработанный XML из вывода пользовательского интерфейса SOAP (при непосредственном обращении к конечной точке):

    HTTP/1.1 200 OK
    Date: Tue, 18 Feb 2014 06:10:56 -0600
    Server: Mule Core/3.4.0
    Content-Type: text/xml; charset=UTF-8
    X-MULE_SESSION: sjkfsdhbbzzzxxxxxxx ....
    http.method: POST
    X-MULE_ENCODING: UTF-8
    Transfer-Encoding: chunked
    Connection: close

Необработанный XML из пользовательского интерфейса SOAP при переходе через поток Mule:

    HTTP/1.1 500 Internal Server Error
    Content-Type: text/plain
    Date: Tue, 18 Feb 2014 06:09:49 -0600
    Server: Mule EE Core Extensions/3.4.1
    http.status: 500
    X-MULE_SESSION: sdkfasdfgsdkgfbsdfkxxxxxxxhshduiaodudyy.....
    X-MULE_ENCODING: UTF-8
    Content-Length: 78
    Connection: close

person user3322736    schedule 18.02.2014    source источник
comment
Можете ли вы отформатировать свой код, тем самым улучшив его читаемость.   -  person fiction    schedule 18.02.2014


Ответы (2)


Попробуйте установить NullSessionHandler для HTTP-коннектора:

<http:connector name="NoSessionConnector">
    <service-overrides sessionHandler="org.mule.session.NullSessionHandler" />
</http:connector>
person Seba    schedule 18.02.2014

Похоже, вы отправляете неверные заголовки или данные на исходящий трафик, и он отвечает ошибкой 500. Типичной проблемой является использование неправильного заголовка Content-Type, поэтому вы можете пропустить что-то вроде <set-property propertyName="Content-Type" value="text/xml;charset=UTF-8"/> перед конечной точкой. Также аналогичным образом добавьте заголовок мыла SOAPAction из SoapUI и убедитесь, что исходящая конечная точка HTTP — это POST.

Для отладки я предлагаю вам попробовать Postman или какой-либо другой простой HTTP-клиент, чтобы получить успешный ответ, а затем установить точный те же заголовки/данные в Mule. Используйте регистратор перед исходящей конечной точкой, чтобы убедиться, что ваше тело сообщения соответствует тому, которое вы могли бы успешно использовать в SoapUI/Postman. Кроме того, зарегистрируйте ответ HTTP, прежде чем пытаться сопоставить его с чем-либо, чтобы вы знали, что не делаете этого с неверными данными. Если у вас есть доступ разработчика к службе, которую вы вызываете, посмотрите, что там говорится в журналах.

person Anton Kupias    schedule 18.02.2014
comment
Отредактировал вопрос, чтобы добавить дополнительную информацию. Пробовал разные значения для Content-Type, но безуспешно. Любые идеи по этому поводу? - person user3322736; 18.02.2014
comment
Я отредактировал свой ответ, чтобы дать вам еще несколько идей. Проблема с отладкой заключается в том, что я понятия не имею, что входит в ваш исходящий http и что выходит или должно выходить. - person Anton Kupias; 18.02.2014