Как сказать wsimport использовать URL-адрес исключения для прокси

Мне нужно подключиться к внутреннему веб-сервису интрасети. Моя компания использует прокси-сервер для доступа в Интернет, но сайты интрасети не проходят через прокси. Я могу перейти к WSDL в IE и Firefox, но мне нужно добавить адрес в список исключений прокси в обоих браузерах.

Когда я использую wsimport, я не могу получить WSDL из-за прокси-сервера. Добавление или исключение аргумента -httpproxy приводит к ошибке «Невозможно проложить туннель через прокси» поэтому я предполагаю, что это не тот способ, которым мне нужно это делать.

Кто-нибудь знает, как я могу сказать wsimport игнорировать прокси-сервер для этого URL?

Нил

Ответы на вопрос(6)

Ты можешь использовать--httpproxy опция опции wsimport тоже

wsimport -keep -httpproxy:USERNAME:[email protected]

В настоящее времяwsimport сломан в этом отношении.

Я создал два билета на это:

https://java.net/jira/browse/JAX_WS-1154 https://java.net/jira/browse/JAX_WS_COMMONS-132
Решение Вопроса

и он использует адрес прокси-сервера и список исключений Internet Explorer (или Safari на Mac, я полагаю).

-Djava.net.useSystemProxies=true

Я получил ансер отhttp://jeannotsweblog.blogspot.co.uk/2009/06/wsimport-with-proxy.html

wsimport -keep -verbose -httpproxy:172.18.14.192:8089 http://xxx.abc.com/services/s1?wsdl

Oracle JAVA 9 wsimport документация

Подход, предложенный Нилом Кеннеди, сработал бы, если бы вы могли установить этот флаг на уровне приложения. Однако, если вы хотите использовать прокси-сервер для определенного URL, взгляните на класс ProxySelector. Вы можете написать свой собственный класс селектора прокси, который расширяет ProxySelector вашим хостом и портом прокси, а затем установить его как селектор прокси по умолчанию. Посмотрите на эту веткуКак я могу использовать HTTP-прокси для запроса JAX-WS без настройки общесистемного свойства? за ответ, данный дядей Ирохом. Также посмотрите наhttp://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html для деталей Proxyselector, который четко объясняет, что происходит.

Я пришел к этому сообщению в поисках способа использования прокси для внутренних (интранет) URL и пропуска прокси для внешних URL (w3c.com) с помощью wsimport.exe (часть JDK 1.6, 1.7 и т. Д.). Я вижу, что у него нет возможности поместить 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 & quot; работает, только если вы предварительно настроили прокси в этой строке, вам нужны ВСЕ параметры. Так что, если вы просто хотите отключить прокси по умолчанию, вам нужно снова настроить его здесь.

 12 мая 2016 г., 19:36
Спасибо! Мне нужно было это настроитьhttps.proxyHost
 22 окт. 2015 г., 13:56
Я добавил последний абзац, если вы чувствуете, что изменения вашего поста слишком сильно, смело возвращайте его.

Ваш ответ на вопрос