tcpmon重定向的Java Axis2客户端Web服务响应

时间:2011-12-03 15:46:36

标签: java soap axis2

我在Windows7上使用Eclipse Indigo来生成Axis2(Axis 1.6.1 JDK compliance 1.5)java存根,并在http://www.xmlme.com/WSShakespeare.asmx?WSDL成功调用了公共Web服务 得到了对所述服务的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 Request

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失败如上所述是我的主要问题。当SOAP客户端完美运行时,我为什么要这样做?因为我用它生成了一个jar,它在Windows7上运行得很好。但当我在我的iSeries又称AS400服务器上运行相同的jar时,它给了我Axis故障HTTP 401未授权&amp;验证所需的消息。我们的IT人员运行websense来阻止内容,但这是我在之前运行.NET Web服务的Windows客户端上的localhost。感谢,想法,回应非常赞赏。

编辑 - Windows发送的NTLM默认凭据和服务器没有的一些研究点?如果可能的话,有人想评论吗?

1 个答案:

答案 0 :(得分:0)

您被重定向到的IP(172.16.1.6)是您网络的本地IP地址(请参阅"Reserved IP addresses"。)请咨询您的网络管理员,了解他们是否阻止了您对www.xmlme.com的请求以及原因

在我看来,问题应该在没有tcpmon的情况下重现。您可以使用网络嗅探器(例如Wireshark)来比较有和没有tcpmon的流量。