在Eclipse中代理后导致Web服务单元测试失败

5

我在Eclipse中执行单元测试时遇到问题,因为单元测试所调用的类调用了一些后面有代理的网络服务。在Tomcat中,我可以指定要使用的代理,但是当我直接从Eclipse运行单元测试时,Eclipse的代理配置似乎被忽略了。在这种情况下,我该如何配置我的单元测试或Eclipse以使用代理?

1个回答

11
我找到了解决方案:显然,可以在Eclipse的运行/调试设置中配置代理。具体操作如下:
  1. 右键单击单元测试类
  2. 选择"Debug As - Debug Configurations"
  3. 转到“Arguments”选项卡
  4. 将代理配置添加到“VM arguments”:

    • -Dhttp.proxyHost=proxy.host.com
    • -Dhttp.proxyPort=8080
    • -Dhttp.nonProxyHosts=[使用管道字符分隔的主机列表]

如果您在密码保护的代理后面,请添加以下内容:

  • -Dhttp.proxyUser=someUserName
  • -Dhttp.proxyPassword=somePassword

对于经验丰富的Java开发人员来说可能很明显,但是当您将参数添加到Eclipse中的VM参数部分时,需要在每个参数前面加上破折号(-)(或者至少我需要这样做)。例如:-Dhttp.proxyHost = abcd.com -Dhttp.proxyPort = 8888。 - Peter
已根据您的指示编辑了答案,感谢您指出这一点(破折号是我原始答案中的,但在改善格式时似乎被编辑掉了)。 - simon
2
你还应该注意,HTTPS的代理配置使用了稍微不同的属性,例如-Dhttps.proxyHost=proxy.host.com。一开始我想知道为什么这对我不起作用,后来发现是因为我的代码使用了HTTPS。 - talawahtech

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