407无法通过代理隧道连接

4
我们有一个调用第三方webservice的webservice。为了测试这个实现,我们有不同的环境。
本地开发机器:当我们运行应用程序时,一切都很好,我们的webservice能够访问第三方URL。(本地机器使用Windows操作系统)
本地开发服务器:在将应用程序部署到开发服务器后,我们无法访问第三方URL并得到Http代理407错误。(我们使用Linux,并使用IBM J9 JVM。)
为了解决这个问题,我们尝试设置-Dhttps.proxyUser XXX -Dhttps.proxyPassword XXX,但我们仍然收到错误。第二个选项是使用Authenticator.setDefault(new CustomImplAuthenticator())。但令人惊讶的是,JVM没有调用getPasswordAuthentication并继续抛出错误。
我们再次在本地开发机器上运行相同的应用程序,使用authenticator.setDefault代码。像之前说的那样,我们可以访问URL,但这次JVM仍然没有调用getPasswordAuthentication方法。在网上搜索后,我们发现通过NTLM解决了认证数据,因此我们认为该代码在Windows上运行良好。
请问有谁能告诉我,在部署在Linux服务器上的应用程序中,我们应该配置哪些设置,以便至少调用分配给Authenticator.setDefault的实现?
1个回答

1

这取决于您如何建立您的http连接。 例如,如果您使用Apache HTTPClient,您可以通过调用setProxyAuthenticationHandler将代理配置设置到DefaultHttpClient中。

执行http调用的您的实现需要知道代理的存在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接