2012-02-16 5 views
2

J'essaie d'accéder à des services Web externes (en dehors de l'intranet) en utilisant WSO2 ESB 4.0.3 mais je ne sais pas comment configurer le proxy laisser la demande sortir. Je peux envoyer des messages SOAP via HTTP à partir de mon application client Java de base sans problèmes; Je pourrais spécifier les détails de proxy en utilisant Apache HttpComponents. Donc, les détails de connexion sont OK.Comment puis-je configurer WSO2 ESB 4.0.3 pour utiliser proxy d'entreprise pour accéder à des services Web externes (sur HTTP)

J'ai essayé:

  1. Modification <transportSender name="http" ... > et spécifiant des paramètres tels que "http.proxyHost" et "http.proxyPort".

  2. Mise en place d'un paramètre global <parameter name="Proxy"> ...

  3. Configuration du HTTP Transport Sender et en spécifiant les paramètres appropriés.

Le meilleur que je suis arrivé était:

ERROR_CODE = 101503, ERROR_MESSAGE = Connection refused or failed for : ... 

Alors, qu'est-ce que je tort et que dois-je faire à la place? Merci.

+0

Êtes-vous you've vous définissez les paramètres de transportSender dans le bon fichier? Il existe une page de documentation à ce sujet pour votre version ESB qui peut vous aider: https://docs.wso2.com/display/ESB403/HTTP+Basic+Authentication+over+a+Proxy+Server –

Répondre

3

Votre serveur proxy dispose-t-il d'une authentification? Si oui et il utilise Basic Auth vous devez spécifier les propriétés followoing avant d'envoyer la demande ..

<property name="Proxy-Authorization" expression="fn:concat('Basic', base64Encode('userName:password'))" scope="transport"/> 
<property name="POST_TO_URI" value="true" scope="axis2"/> 

La première propriété définit l'en-tête de transport HTTP Proxy-Authorization avec les base64 nom d'utilisateur et mot de passe comme prévu par le Authentification de base HTTP.

La deuxième propriété fait de l'URL sortante une URL complète compréhensible par le serveur proxy.

Voici un exemple configuration proxy ...

<proxy name="StockQuoteProxy" startOnLoad="true"> 
<target> 
<inSequence> 
<property name="Proxy-Authorization" expression="fn:concat('Basic ', base64Encode('udayanga:test123'))" scope="transport"/> 
<property name="POST_TO_URI" value="true" scope="axis2"/> 
<send> 
<endpoint> 
<address uri="http://www.wso2.com:9000/services/SimpleStockQuoteService"/> 
</endpoint> 
</send> 
</inSequence> 
<outSequence> 
<send/> 
</outSequence> 
</target> 
<publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/> 
</proxy> 
+0

Désolé, mais ceci est pas une solution à mon problème. Notre proxy d'entreprise ne nécessite pas d'authentification. Je voudrais simplement accéder, disons 'http: // www.webserviceX.NET/GetQuote' à la place des exemples de services serveur WSO2 Axis2. Un moyen simple de spécifier un proxy (et non un service proxy fourni par WSO2 ESB)? –

+0

BTW, pourquoi ne pas avoir le '' a '' ou un élément enfant similaire? –

Questions connexes