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