如何告诉wsimport使用代理例外URL

时间:2012-04-24 13:19:58

标签: java web-services wsdl jax-ws wsimport

我需要连接到内部Intranet Web服务。我公司使用代理服务器访问互联网,但内部网站点不通过代理。我可以在IE和Firefox中导航到WSDL,但我必须在两个浏览器中将地址添加到代理例外列表中。

当我使用wsimport时,由于代理服务器,我无法获得WSDL。添加或删除-httpproxy arg给出了一个错误“无法通过代理隧道”,所以我猜这不是我需要这样做的方式。

有没有人知道我可以告诉wsimport忽略这个网址的代理服务器?

尼尔

6 个答案:

答案 0 :(得分:7)

我在这篇文章中找到了一种方法,使用代理内部(Intranet)URL和使用wsimport.exe(JDK 1.6,1.7等的一部分)跳过外部URL代理(w3c.com)。我看到它没有放置nonProxyHosts的功能,所以我继续使用Java类调用。

像这样的东西

java -Dhttp.proxyHost=proxyServer -Dhttp.proxyPort=9000 -Dhttp.nonProxyHosts="localhost|*.intranet-domain.com" -classpath %JAVA_HOME%\lib\tools.jar com.sun.tools.internal.ws.WsImport -p com.ws.client.pkg http://app.intranet-domain.com/endpoint?wsdl 

为了便于阅读:

java
  -Dhttp.proxyHost=proxyServer
  -Dhttp.proxyPort=9000
  -Dhttp.nonProxyHosts="localhost|*.intranet-domain.com"
  -classpath %JAVA_HOME%\lib\tools.jar
  com.sun.tools.internal.ws.WsImport
  -p com.ws.client.pkg
  http://app.intranet-domain.com/endpoint?wsdl 

请记住,“-Dhttp.nonProxyHosts”仅在您之前在该行中配置代理时才有效,您需要所有参数。因此,如果您只想禁用默认代理,则必须再次在此处进行配置。

答案 1 :(得分:2)

我找到了答案。您需要将以下内容添加为JVM参数,并使用Internet Explorer(或我假设的Mac上的Safari)代理地址和排除列表。

-Djava.net.useSystemProxies=true

我从http://jeannotsweblog.blogspot.co.uk/2009/06/wsimport-with-proxy.html

获得了anser

答案 2 :(得分:2)

目前wsimport在这方面已被打破。

我创建了两张票:

  1. https://java.net/jira/browse/JAX_WS-1154
  2. https://java.net/jira/browse/JAX_WS_COMMONS-132

答案 3 :(得分:0)

如果您可以在应用程序级别设置该标志,那么Neil Kennedy建议的方法将起作用。但是,如果您想使用特定URL的代理,那么请查看ProxySelector类。您可以编写自己的代理选择器类,使用代理主机和端口扩展ProxySelector,然后将其设置为默认代理选择器。请查看此线程How can I use an HTTP proxy for a JAX-WS request without setting a system-wide property?以获取Uncle Iroh给出的答案。另请查看http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html以获取有关Proxyselector的详细信息,该内容清楚地说明了正在发生的事情。

答案 4 :(得分:0)

您也可以使用wsimport选项的--httpproxy选项 -

wsimport -keep -httpproxy:USERNAME:passwdsabc001@proxy.yourcmpny.com

答案 5 :(得分:0)

wsimport -keep -verbose -httpproxy:172.18.14.192:8089 http://xxx.abc.com/services/s1?wsdl

按照Oracle JAVA 9 wsimport documentation