我想连接到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
我如何解决这个例外,我已尝试过在网上发布的许多解决方案,但没有任何运气。
答案 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>