tcpmon Java Axis2 клиент веб-службы перенаправляется ответ - PullRequest
1 голос
/ 03 декабря 2011

Я использовал Eclipse Indigo в Windows7 для создания Java-заглушек Axis2 (Axis 1.6.1, соответствие JDK 1.5) и успешно вызвал общедоступный веб-сервис на http://www.xmlme.com/WSShakespeare.asmx?WSDL Получил идеальный ответ на метод getSpeech указанного сервиса.Затем я использовал tcpmon (плагин), чтобы увидеть обмен xml.Добавлен порт прослушивания = 4556, имя целевого хоста = www.xmlme.com и целевой порт = 80 При этом сгенерированная ошибка HTTP 302 перемещена.Повторение работает правильно, когда вызывается с

ShakespeareSoapProxy ssp = new ShakespeareSoapProxy("http://www.xmlme.com:80/WSShakespeare.asmx?WSDL");

, но не удается, когда слушатель tcpmon добавлен и вызван с

ShakespeareSoapProxy ssp = new ShakespeareSoapProxy("http://localhost:4556/WSShakespeare.asmx?WSDL"); 

tcpmon soap. Запрос

POST /WSShakespeare.asmx?WSDL HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.4
Host: www.xmlme.com:4556
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "http://xmlme.com/WebServices/GetSpeech"
Content-Length: 359

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><GetSpeech xmlns="http://xmlme.com/WebServices"><Request>To be, or not to be</Request></GetSpeech></soapenv:Body></soapenv:Envelope>
---------tcpmon response below----------------------------
HTTP/1.0 302 Moved
Location: http://172.16.1.6:15871/cgi-bin/blockpage.cgi?ws-session=1096295497
Pragma: no-cache
Cache-Control: no-cache

Почему происходит сбой tcpmonкак указано выше, мой основной вопрос.ПОЧЕМУ я tcpmon, когда клиент SOAP работал отлично?Потому что я сгенерировал из этого банку, и она отлично работала на Windows7.Но когда я запустил тот же jar на своем сервере iSeries aka AS400, он выдал мне сообщение об ошибке Axis HTTP 401 неавторизованным и требовалась аутентификация.Наши ИТ-специалисты запускают websense, чтобы блокировать вещи, но это localhost на клиенте Windows, где я раньше запускал веб-сервисы .NET.Идеи, ответы очень оценены, спасибо.

Редактировать. Некоторые исследования указывают на учетные данные NTLM по умолчанию, которые отправляет Windows, а сервер - нет?Кто-нибудь хочет прокомментировать, может ли это быть?

1 Ответ

0 голосов
/ 05 декабря 2011

IP-адрес, на который вы перенаправлены (172.16.1.6), является локальным для вашей сети (см. «Зарезервированные IP-адреса» .) Узнайте у администраторов сети, блокируют ли они ваш запрос на www. .xmlme.com и почему.

Мне кажется, что проблема должна воспроизводиться и без tcpmon. Вы можете использовать сетевой анализатор (например, Wireshark ) для сравнения трафика с tcpmon и без него.

...