我在Windows7上使用Eclipse生成Axis2 (Axis1.6.1JDK遵从性1.5) java存根,并成功地调用了http://www.xmlme.com/WSShakespeare.asmx?WSDL上的公共web服务,得到了对该服务的getSpeech方法的完美响应。然后,我使用tcpmon (插件)来看到xml正在交换。添加侦听端口= 4556,目标主机名= www.xmlme.com和目标端口= 80,这将生成HTTP302移动错误。调用时,若要重述工作,请执行以下操作:
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会像上面一样失败是我的主要问题。当SOAP客户端完美地工作时,我为什么要告诉它呢?因为我用它生成了一个jar,它在Windows7上运行得很好。但是,当我在我的iSeries,又名AS400服务器上运行相同的jar时,它给了我AxisFailyHTTP401未经授权和身份验证所需的消息。我们的IT人员确实运行websense来阻止内容,但这是windows客户机上的本地主机,我以前在这里运行过.NET web服务。想法,反应是非常感谢,谢谢。
编辑-一些研究点在NTLM默认凭证窗口发送和服务器没有?如果可能的话,有人想评论一下吗?
发布于 2011-12-05 17:27:30
您要重定向到的IP (172.16.1.6)是您网络的本地IP(参见“预留IP地址”)。与您的网络管理员检查他们是否阻止了您对www.xmlme.com的请求,以及原因。
在我看来,这个问题应该在没有tcpmon的情况下重现。您可以使用网络嗅探器(例如Wireshark)来比较有和没有tcpmon的流量。
https://stackoverflow.com/questions/8368798
复制相似问题