首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Axis namespace mismatch 传参失误解决方案,Java Webservice调用

2012-09-09 
Axis namespace mismatch 传参出错解决方案,Java Webservice调用描述在做Webservice接口的时候发现一个问

Axis namespace mismatch 传参出错解决方案,Java Webservice调用
描述
    在做Webservice接口的时候发现一个问题,Webservice测试类中有两个方法,一个是helloWorld一个是SayHello(String name),调用helloWorld的时候能正常输出返回值,因为这个方法不带参数,但是在使用SayHello的方法时就会出错,报出namespace mismatch XXXXX 这个问题查了很久,主要说是Webservice的发部方式引起的问题,具体不知。


解决
    在调用时的客户端类中设置一下namespace,因为调用写法很多,所以我在下方列出一种比较简单的调用方法#具体的namespace查看方式可以看控制台报的错误信息获取也可以通过完整Webservice访问地址加上?wsdl来查看配置信息,里面也有namespace#。


try {//调用地址String endpoint = "http://localhost:8080/smsp/services/MainControl";Service service = new Service();Call call = null;call = (Call) service.createCall();//调用方法名称和nameSpace域名配置call.setOperationName(new QName("http://webservice.smsp.withub.net.cn", "sayH"));call.setTargetEndpointAddress(new java.net.URL(endpoint));//调用及传参,#返回的类型#如果不同记住进行修改这里是默认转的(String),如果传参需要多个,只需要在Object数组中增加String ret = (String) call.invoke(new Object[] {"Jim"});} catch (Exception ex) {ex.printStackTrace();}

热点排行