2012-09-22 6 views
1

Quelqu'un peut-il me montrer un petit exemple de la façon de créer un flux de mule pour envoyer des demandes à un service https? J'ai essayé de le faire, mais je reçois les erreurs suivantes:Mule ESB: Connexion au service 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) 

etc ...

Je vois au moins 2 choses étranges:

  • org.mule.transport.http.transformers.ObjectToHttpClientMethodRequest: Content-Type non défini sur demande sortante, par défaut à: text/plain - Je ne sais pas d'où je reçois ceci, le type de contenu est défini sur tous les points de terminaison à text/xml.
  • org.mule.transformer.simple.ObjectToString: Impossible ruisseau, à proximité - Je ne peux pas expliquer d'où cela vient ...

Ma configuration 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> 

Merci beaucoup!

+0

Pas assez d'informations: Version Mule? Configuration? Comment reproduire les problèmes? –

+0

Je viens d'ajouter la configuration XML à la question –

Répondre

0

Ce monsieur semble avoir résolu son propre problème de mise en place d'un service https. Peut-être que l'extraction de certaines informations de son exemple peut vous guider. Il a eu une erreur différente, comme pour vos erreurs de flux, je veux dire que le port est fermé.

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

Y compris la configuration de votre mule laisser les autres vous aider plus.

0

Un exemple simple d'envoyer à la demande HTTPS sera la suivante: -

<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" /> 
Questions connexes