【问题标题】:How do I tell wsimport to use a proxy exception url如何告诉 wsimport 使用代理异常 url
【发布时间】:2012-05-05 03:16:13
【问题描述】:

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

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

有谁知道我可以告诉 wsimport 忽略此 url 的代理服务器的方法吗?

尼尔

【问题讨论】:

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


    【解决方案1】:

    我来到这篇文章是为了寻找一种使用 wsimport.exe(JDK 1.6、1.7 等的一部分)对内部(内部网)URL 使用代理并跳过外部 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”仅在您之前在该行中配置代理时才有效,您需要所有参数。因此,如果您只想禁用默认代理,则必须在此处重新配置它。

    【讨论】:

    • 我添加了最后一段,如果您觉得您的帖子更改太多,请随时恢复它。
    • 谢谢!我需要这个来配置https.proxyHost
    【解决方案2】:

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

    -Djava.net.useSystemProxies=true
    

    我从http://jeannotsweblog.blogspot.co.uk/2009/06/wsimport-with-proxy.html得到了分析器

    【讨论】:

      【解决方案3】:

      目前wsimport在这方面被破坏了。

      我为此创建了两张票:

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

      【讨论】:

        【解决方案4】:
        wsimport -keep -verbose -httpproxy:172.18.14.192:8089 http://xxx.abc.com/services/s1?wsdl
        

        根据Oracle JAVA 9 wsimport documentation

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

            如果您可以在应用程序级别设置该标志,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 的详细信息,它清楚地解释了正在发生的事情。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2020-11-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-05-24
              • 2013-08-01
              相关资源
              最近更新 更多