Как избежать использования метода CONNECT http в библиотеке CXF (SOAP)

Я пишу SOAP-клиент, используя библиотеку CXF, и здесь мое требование состоит в том, чтобы перенаправить SOAP-запрос в другой веб-сервис, который действует для меня как прокси. Я использовал следующий код для настройки прокси в моем SOAP-клиенте

WebService ss = new WebService();

WebServiceSoap port=ss.WebServiceSoap();

Client client = ClientProxy.getClient(port);

HTTPConduit http = (HTTPConduit) client.getConduit();

HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setProxyServer(System.getProperty("http.proxyHost","proxyserver.com"));
httpClientPolicy.setProxyServerPort(Integer.valueOf(System.getProperty("http.proxyPort","8080")).intValue());

httpClientPolicy.setConnectionTimeout(36000);

http.setClient(httpClientPolicy);

byte[] fileContent={'b','b'};

String res=port.submiFile(fileContent");

Но этот код выдает ниже ошибки

msgstr "java.io.IOException: Невозможно туннелировать через прокси. Прокси возвращает"HTTP/1.1 405 Метод не разрешен ".

Согласно моему исследованию, эта ошибка происходит, потому что библиотека CXF использует "CONNECT"

HTTP-метод для туннелирования SOAP-запроса, однако этот метод CONNECT

реализация недоступна на прокси-сервере (proxyserver.com). Теперь прокси

Команда сервера говорит, что мы можем предоставить только HTTP-методы "GET" и "POST".

Это означает, что мне нужно создать SOAP-запрос вручную и отправить с использованием метода POST или GET. Но именно так мы хотим избежать создания SOAP-запроса вручную.

Так что мой вопрос заключается в том, есть ли способ избавиться от этого или я могу переопределить

Метод "ПОДКЛЮЧИТЬ"? Любая ссылка ответа будет полезна. Также, пожалуйста, смотрите вложение для более подробной информации.

1 ответ

Вы нигде не добавили SOAPAction

Другие вопросы по тегам