无法通过代理隧道。代理返回HTTP / 1.1 503服务不可用

时间:2017-03-20 12:53:11

标签: java proxy ioexception tunneling

我想连接到Intranet服务器,我需要连接的网址是:

URLConnection conn = new URL("https://mywebsite").openConnection();

当我通过以下方式调用connect方法时调用:`

conn.connect();

我收到以下异常:

java.io.IOException: Unable to tunnel through proxy. Proxy rerurns HTTP/1.1 503 Service Unavailable"
at sun.net.www.protocol.httpHttpURLConnection.doTunneling

我如何解决这个例外,我已尝试过在网上发布的许多解决方案,但没有任何运气。

2 个答案:

答案 0 :(得分:0)

对我有用的是取消设置环境中的所有代理属性(http_proxy等env变量; -Dhttp.proxyHost=..之类的Java属性令人惊讶地没有效果)。我的URL(https://mycompany.example.com/service)可以直接访问(因为它在内部网络上),而不能通过代理访问。

因此,请检查服务的位置,并检查与代理相关的环境变量。

答案 1 :(得分:0)

我有一个类似的案件。我正在使用maven jaxws-maven-plugin插件,并尝试从放置在另一台服务器上的WSDL生成Java代码。 问题在于插件正在获取环境变量httpproxy,而不是noproxy变量。我通过手动将其添加为JVM参数来解决该问题:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.4.1</version>
<executions>
    <execution>
        <id>wsdltoJava</id>
        <goals>
            <goal>wsimport</goal>
        </goals>
        <configuration>
            <wsdlUrls>
                <wsdlUrl>https://someService.yourcompany.net/Service/Service?wsdl</wsdlUrl>
            </wsdlUrls>
            <vmArgs>
                <vmArg>-Dhttp.nonProxyHosts=*.yourcompany.net</vmArg>
            </vmArgs>
            <keep>true</keep>
            <packageName>com.yourcompany.package</packageName>
            <sourceDestDir>your/target/directory</sourceDestDir>
        </configuration>
    </execution>
</executions>