2011-12-03 14 views
1

Axis2(Axis 1.6.1 JDK準拠1.5)Javaスタブを生成するためにWindows7上でEclipse Indigoを使用し、公衆網サービスを正常に呼び出しましたhttp://www.xmlme.com/WSShakespeare.asmx?WSDL getSpeechメソッドに完全な応答がありますサービス。それから、xmlが交換されるのを見るためにtcpmon(plugin)を使いました。追加されたListenポート= 4556、ターゲットホスト名= www.xmlme.comおよびターゲットポート= 80これにより、HTTP 302 Movedエラーが生成されました。要約すると、上記のように失敗すると、私の主な質問ですtcpmonのはなぜtcpmon Java Axis2クライアントのWebサービス応答がリダイレクトされる

ShakespeareSoapProxy ssp = new ShakespeareSoapProxy("http://www.xmlme.com:80/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の追加と

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

で呼び出されたときに失敗します。 SOAPクライアントが完璧に動作したときに、なぜ私はtcpmonしましたか?私はそれから瓶を生成し、それはWindows7で素晴らしい仕事をしたので。しかし、私はAS400サーバーでAS400サーバーと同じjarファイルを実行したとき、AxisフォルトHTTP 401を無許可で与えました&認証が必要です。私たちのITスタッフはwebsenseを実行して物をブロックしていますが、以前は.NET Webサービスを実行していたWindowsクライアントのlocalhostです。アイデア、応答は非常に、ありがとうございます。

編集 - Windowsが送信し、サーバーが送信しないNTLMのデフォルトの資格情報に関するいくつかの調査ポイント?それは誰でもコメントできますか?

答えて

0

リダイレクト先のIP(172.16.1.6)は、ネットワークに対してローカルです("Reserved IP addresses"を参照)。ネットワーク管理者に、www.xmlme.comへのリクエストがブロックされているかどうかを確認してください。

問題はtcpmonなしで再現する必要があります。ネットワークスニファ(例:Wireshark)を使用して、tcpmonの有無にかかわらずトラフィックを比較できます。

+0

Eli - ありがとう!私は十分な評判LOLを持っていないので、私はあなたを投票することができませんでした。残念ながら、Win7(ポート80)から直接呼び出しても問題はありません。素晴らしいです! tcpmonとポート4556を導入すると問題が発生します。また、Win7での直接呼び出しでさえ、HTTP 401がサーバー(非ウィンドウAS400/iSeries)上で無許可で失敗することも困惑しています。 NTLMのデフォルトの資格情報で、Windowsが送信し、サーバーが送信しないといういくつかの研究ポイントがありますか?それは誰でもコメントできますか? – bkolluru

+0

(私が間違っていたのにもかかわらず、あなたはtcpmon _does_に違いがあります:-))助けてくれてうれしいです。 IMHOスニファは、成功したリクエストと失敗したリクエストの違いを確認するのに役立ちます。 NTLMに関する新しい情報を質問の本文に追加することをお勧めします。回答が得られる可能性が高くなります。 –

+0

ありがとうエリ、私はNTLMのために投稿を編集します、私はまた、このwiresharkを試してチェックアウトします、tcpmonは、おそらくそれを傍受することができませんでした! – bkolluru

関連する問題