我需要连接到内部网的Web服务。 我公司使用代理服务器来访问Internet,但内部网站不通过代理去。 我可以导航到在IE和Firefox的WSDL,但我一定要将该地址添加到在两个浏览器的代理例外列表。
当我使用的wsimport我不能因为代理服务器的WSDL。 在加入或离开了-httpproxy ARG给我一个错误“通过代理无法隧道”,所以我猜测这是不是我需要做到这一点。
有谁知道一种方法,我可以告诉的wsimport忽略此URL的代理服务器?
尼尔
我需要连接到内部网的Web服务。 我公司使用代理服务器来访问Internet,但内部网站不通过代理去。 我可以导航到在IE和Firefox的WSDL,但我一定要将该地址添加到在两个浏览器的代理例外列表。
当我使用的wsimport我不能因为代理服务器的WSDL。 在加入或离开了-httpproxy ARG给我一个错误“通过代理无法隧道”,所以我猜测这是不是我需要做到这一点。
有谁知道一种方法,我可以告诉的wsimport忽略此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”只有当你之前在该行配置代理工作,你需要的所有参数。 所以,如果你只是想禁用默认的代理,你要在这里重新配置。
我找到了答案。 您需要添加以下内容作为JVM参数,它使用的Internet Explorer(或Mac上的Safari我假设)代理服务器地址和排除列表。
-Djava.net.useSystemProxies=true
我得到了雁从http://jeannotsweblog.blogspot.co.uk/2009/06/wsimport-with-proxy.html
目前wsimport
在这方面打破。
我创建了两张票为:
方法由尼尔·肯尼迪建议将工作,如果你可以,如果你想使用特定的URL代理,那么必须看的ProxySelector类在应用level.However设置标志。 你可以写与您的代理主机和端口延伸的ProxySelector自己的代理选择类,然后将其设置为默认代理selector.Have看看这个线程如何使用的JAX-WS请求的HTTP代理不设置系统-范围内的属性? 通过Iroh叔叔给出答案。 也有看http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html为的ProxySelector的细节清楚地解释发生了什么。
您可以使用--httpproxy
的wsimport选项选项too-
wsimport -keep -httpproxy:USERNAME:passwdsabc001@proxy.yourcmpny.com
wsimport -keep -verbose -httpproxy:172.18.14.192:8089 http://xxx.abc.com/services/s1?wsdl
按照甲骨文JAVA 9的wsimport文档