调用WebService问题

J2EE 码拜 10年前 (2015-04-12) 1119次浏览 0个评论
 

通过客户端调用远程WebService:

public String sendData(String sendXml,String url,String methodName){
		Service service = new Service();
		String returnStr="";
		try {
			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(new URL(url));
			call.setOperationName(new QName("http://server.transfer.datahandle.auib.com", methodName));
			call.addParameter( "arg0", XMLType.XSD_STRING, ParameterMode.IN);
			returnStr = (String) call.invoke(new Object[]{sendXml});
			System.out.println("看看返回的报文。。"+returnStr);
		} catch (ServiceException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return returnStr;
	}

 

报这个错:
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: org.xml.sax.SAXException: Bad envelope tag:  html
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Bad envelope tag:  html
        at org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:71)
        at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)

最主要是本地不报错,部署到WebLogic上就报错。。。
求帮助,最近项目要上线了

调用WebService问题
http://server.transfer.datahandle.auib.com–这是你部署后的weblogic服务端的service服务根目录?应该还有一个项目的目录路径(比如/XXXwebserivce),从你报错来看报文返回的是<HTML>而不是<env:SOAP>,也验证了应该是路径不对导致服务端直接返回的是404的html页面(找不到对应的WSDL)
调用WebService问题
是不是jar包冲突了
调用WebService问题
url是啥样的?
调用WebService问题
40分
这个分析很有道理,出错可能是服务器说:404 操作页面没找到。其实我们只需要把发送和返回的 TCP 通信内的 xml 内容拿出来看看就知道了,在 Eclipse 中我们有一个小工具叫 TCP/IP Monitor 视图,它能中转一个 HTTP 连接,我们就可以在它的视图中观察 HTTP 通信内容,启动 TCP/IP Monitor 时监听本地任意端口并让它转发到原来的 Web Service 服务器端口上。

引用 1 楼 qingyuan18 的回复:

http://server.transfer.datahandle.auib.com–这是你部署后的weblogic服务端的service服务根目录?应该还有一个项目的目录路径(比如/XXXwebserivce),从你报错来看报文返回的是<HTML>而不是<env:SOAP>,也验证了应该是路径不对导致服务端直接返回的是404的html页面(找不到对应的WSDL)

调用WebService问题
引用 3 楼 fangmingshijie 的回复:

url是啥样的?

http://60.247.2.50:8808/bgProcessingServer/ws/payNotify/notify

调用WebService问题
加上?wsdl看看。
调用WebService问题
引用 6 楼 fangmingshijie 的回复:

加上?wsdl看看。

不管用呢。。在本地就不用加?wsdl就能调通

调用WebService问题
引用 2 楼 shijing266 的回复:

是不是jar包冲突了

能具体说说么


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明调用WebService问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!