Невозможно туннелировать через прокси. Прокси возвращает HTTP/1.1 503 Служба недоступна

Я хочу подключиться к серверу интрасети, URL-адрес, который мне нужен для подключения:

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

Когда я добираюсь до вызова метода подключения через:`

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

Как я могу решить это исключение, я пробовал много решений, опубликованных в сети, но безуспешно.


person ManKeer    schedule 20.03.2017    source источник
comment
См. stackoverflow.com/questions/44328077/ для аналогичного, но несколько другого случая.   -  person Jakub Holý    schedule 04.10.2018


Ответы (2)


Что мне помогло, так это отключить все свойства прокси в среде (переменные env http_proxy и т. д.; свойства java, такие как -Dhttp.proxyHost=.., на удивление, не оказали никакого влияния). Мой URL-адрес (https://mycompany.example.com/service) был доступен напрямую (поскольку он во внутренней сети), но не через прокси.

Поэтому проверьте, где находится служба, и проверьте переменные среды, связанные с прокси.

person Jakub Holý    schedule 04.10.2018

У меня был похожий случай. Я использую плагин maven jaxws-maven-plugin и пытаюсь сгенерировать Java-код из WSDL, лежащего на другом сервере. Проблема заключалась в том, что плагин получает переменную окружения 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>

person Guillermo    schedule 24.02.2019