永发信息网

java调用webservice

答案:2  悬赏:70  手机版
解决时间 2021-04-13 13:55

如题,我的客户端代码是:

String endpoint = " http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl";
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("getWeather");//WSDL里面描述的接口名称
call.addParameter("getWeatherSoapIn", org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
call.setUseSOAPAction(true);
call.setSOAPActionURI(" http://schemas.xmlsoap.org/wsdl/");
String res = (String)call.invoke(new Object[]{addrName});

可是现在老是报“服务器未能识别 HTTP 头 SOAPAction 的值”异常。

我想问的是一个wsdl文件中,我该取得哪个元素节点下的值设到setSOAPActionURI里面去呢?

最佳答案

当定义endpoint的时候不要带上.wsdl:


String endpoint = " http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx";

全部回答

call.setTargetEndpointAddress(endpoint);

换成

call.setTargetEndpointAddress(new URL(endpoint));

call.setSOAPActionURI(" http://schemas.xmlsoap.org/wsdl/");

换成

call.setSOAPActionURI(endpoint + "getWeather");

试试看

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想开一家假发店 需要多大的店面 店里可以卖
钢板倾斜如何铺平
实木沙发做垫怎么防滑
有谁知道有什么祛斑方法最简单有效啊?
去诺基亚维修中心修主版。大概要多少钱?
乐都汇4号门怎么去啊,有知道地址的么
怎样应征淘宝平面模特
已知如图中长方形的面积是20平方厘米,图中半
接吻的要领?
火车票还代了?
绝对君主制和帝制有何区别?
Opera浏览器问题?
煌上煌酱卤家(丰城梅林店)地址在什么地方,想
怎么样死的快不遭罪,活着还不如死了算了
大学生未来在哪里,为什么工资比农民工还低、
推荐资讯
蜀门武器怎么升?
九零年农历十月十八到底是什么星座有的说是天
单选题洋务运动开展的背景主要是A.第二次鸦片
碳膜电位器wth118怎样接线
大家知道三星数码相机ES15和ES17的价格多少吗
长时间不关电脑电源插座有没有坏处?
让女生一直高潮会不会晕过去
冒险岛被封印的僵尸娃娃在那打
QQ飞行岛怎么电亮
象州县公安局中平派出所驻中平中心校警务室地
新艺电动车五莲店我想知道这个在什么地方
能不能帮我做一个证书
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?