2010-11-13 7 views
4

Nous avons un service Web qui appelle un service Web tiers. Pour tester cette implémentation, nous avons différents environnements.407 impossibilité de passer par un tunnel

  • Developer Machine locale: Lorsque nous courons l'application, tout fonctionne bien et notre webservice est capable de frapper l'URL d'un tiers. (Machine locale utilise Windows OS)

  • développement local serveur: Après avoir déployé l'application sur le serveur de développement, nous ne sommes pas en mesure d'accéder à l'URL tiers et obtenir Http Proxy erreur 407. (Nous avons des Linux, avec machine virtuelle Java IBM J9.)

Pour contourner ce problème, nous avons essayé de mettre -Dhttps.proxyUser XXX -Dhttps.proxyPassword XXX, mais nous avons continué à obtenir l'erreur. La deuxième option que nous avons essayé utilise Authenticator.setDefault(new CustomImplAuthenticator()). Mais de manière surprenante, la JVM n'a pas invoqué getPasswordAuthentication et a continué à lancer une erreur.

Nous avons de nouveau exécuté la même application sur une machine de développement locale avec le code authenticator.setdefault. Nous pourrions accéder à l'URL comme indiqué précédemment, mais cette fois encore, la JVM n'a pas invoqué la méthode getPasswordAuthentication. Après avoir cherché sur net, nous avons constaté que grâce à NTLM, les données d'authentification sont résolues et nous pensons donc que le code fonctionne sur Windows. Est-ce que quelqu'un peut me faire savoir quels paramètres, nous devons configurer sur l'application déployée dans la boîte Linux de sorte qu'au moins l'implémentation affectée pour Authenticator.setDefault sera invoquée.

Répondre

1

Cela dépend de la façon dont vous construisez votre connexion http. Si vous utilisez par exemple Apache HTTPClient, vous pouvez définir la configuration du proxy dans DefaultHttpClient en appelant setProxyAuthenticationHandler.

Votre implémentation qui fait l'appel http doit connaître le proxy.

Questions connexes