4

我们有一个调用第三方 Web 服务的 Web 服务。为了测试这个实现,我们有不同的环境。

  • 本地开发者机器:当我们运行应用程序时,一切正常,我们的 web 服务能够访问第三方 URL。(本地机器使用 Windows 操作系统)

  • 本地开发服务器:在开发服务器上部署应用程序后,我们无法访问第三方 URL,并出现 Http Proxy 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调用分配给的实现。

4

1 回答 1

1

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

您执行 http 调用的实现需要了解代理。

于 2011-09-09T13:35:28.347 回答