调用WebService问题

jihaixiao8 2014-09-16 10:39:40
通过客户端调用远程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上就报错。。。
求帮助,最近项目要上线了
...全文
215 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
加上?wsdl看看。
jihaixiao8 2014-09-16
  • 打赏
  • 举报
回复
引用 3 楼 fangmingshijie 的回复:
url是啥样的?
http://60.247.2.50:8808/bgProcessingServer/ws/payNotify/notify
humanity 2014-09-16
  • 打赏
  • 举报
回复
这个分析很有道理,出错可能是服务器说: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)
  • 打赏
  • 举报
回复
url是啥样的?
  • 打赏
  • 举报
回复
是不是jar包冲突了
qingyuan18 2014-09-16
  • 打赏
  • 举报
回复
http://server.transfer.datahandle.auib.com--这是你部署后的weblogic服务端的service服务根目录?应该还有一个项目的目录路径(比如/XXXwebserivce),从你报错来看报文返回的是<HTML>而不是<env:SOAP>,也验证了应该是路径不对导致服务端直接返回的是404的html页面(找不到对应的WSDL)
jihaixiao8 2014-09-16
  • 打赏
  • 举报
回复
引用 2 楼 shijing266 的回复:
是不是jar包冲突了
能具体说说么
jihaixiao8 2014-09-16
  • 打赏
  • 举报
回复
引用 6 楼 fangmingshijie 的回复:
加上?wsdl看看。
不管用呢。。在本地就不用加?wsdl就能调通

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧