Mule ESB: подключение к сервису https

Может ли кто-нибудь показать мне небольшой пример того, как создать поток мулов для отправки запросов в службу https? Я пытался это сделать, но получаю следующие ошибки:

INFO 2012-09-21 21:40:40,980 [[myapp_kareo].connector.http.mule.default.receiver.02] org.mule.transport.http.transformers.ObjectToHttpClientMethodRequest: Content-Type not set on outgoing request, defaulting to: text/plain
WARN 2012-09-21 21:40:41,081 [[myapp_kareo].connector.http.mule.default.receiver.02] org.mule.transformer.simple.ObjectToString: Could not close stream
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
at java.io.BufferedInputStream.read(BufferedInputStream.java:308) at org.apache.commons.httpclient.ContentLengthInputStream.read(ContentLengthInputStream.java:170)

и т.д...

Я вижу как минимум 2 странные вещи:

  • org.mule.transport.http.transformers.ObjectToHttpClientMethodRequest: Content-Type не установлен для исходящего запроса, по умолчанию: text/plain — я не знаю, откуда я это взял, тип контента установлен на всех конечных точках как text/xml.
  • org.mule.transformer.simple.ObjectToString: Не удалось закрыть поток - не могу объяснить, откуда это...

Моя конфигурация xml:

<?xml version="1.0" encoding="UTF-8"?>
<https:connector name="HTTP_HTTPS" cookieSpec="netscape" validateConnections="true" sendBufferSize="0" receiveBufferSize="0" receiveBacklog="0" clientSoTimeout="10000" serverSoTimeout="10000" socketSoLinger="0" proxyHostname="localhost" proxyPort="80" doc:name="HTTP\HTTPS">
    <https:tls-key-store path="/src/main/app/keystore/javakeystore.jks" storePassword="somepassword"/>
</https:connector>
<flow name="KareoFlow1" doc:name="KareoFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="kareo" contentType="text/xml" doc:name="SomeApp"/>
    <https:outbound-endpoint exchange-pattern="request-response" host="webservice.kareo.com/" port="443" path="services/soap/2.1/KareoServices.svc" connector-ref="HTTP_HTTPS" contentType="text/xml" doc:name="Kareo"/>
    <echo-component doc:name="Echo"/>
</flow>

Thank you very much!


person Vasi Chindris    schedule 22.09.2012    source источник
comment
Недостаточно информации: версия Mule? Конфигурация? Как воспроизвести проблемы?   -  person David Dossot    schedule 25.09.2012
comment
Я только что добавил конфигурацию xml к вопросу   -  person Vasi Chindris    schedule 03.10.2012


Ответы (2)


Простой пример отправки запроса на HTTPS будет следующим:

<https:connector name="httpsBSConnector" doc:name="HTTP\HTTPS" clientSoTimeout="10000" cookieSpec="netscape" proxyHostname="proxy-nc.abc.com" proxyPort="80" receiveBacklog="0" receiveBufferSize="0" sendBufferSize="0" serverSoTimeout="10000" socketSoLinger="0" validateConnections="true">
     <https:tls-key-store path="${keystore.path}" keyPassword="${keystore.password}" storePassword="${keystore.password}"/>
     <https:tls-server path="${truststore.path}" storePassword="${truststore.password}"/>
</https:connector>

<https:outbound-endpoint address="https://${url}:${port}${path}" doc:name="getDataCall" exchange-pattern="request-response" method="POST" connector-ref="httpsBSConnector" />
person Anirban Sen Chowdhary    schedule 24.07.2015

Этот джентльмен, похоже, решил свою проблему с настройкой службы https. Возможно, извлечение некоторой информации из его примера поможет вам. У него была другая ошибка, насчет ваших стримовых ошибок хочу сказать порт закрыт.

http://forum.mulesoft.org/mulesoft/topics/https_connector_working_example_wanted

Включение вашей конфигурации мула позволит другим помочь вам больше.

person bbotz    schedule 25.09.2012