2 u010295735 u010295735 于 2017.01.12 10:38 提问

调用webservice接口,call.setOperationName的参数问题

本人刚开始用webservice,很多不懂,还望大神赐教啊,拜谢
我用Java调用webservice接口,用的是org.apache.axis包的类,关键代码如下:
Call call = null;
try {
call = (Call)service.createCall();
call.setTargetEndpointAddress(new URL("http://localhost:8081/UserService?wsdl"));
call.setProperty("axis.connection.timeout", new Integer(3600000));
call.setTimeout(new Integer(3600000));
//call.setOperationName(new javax.xml.namespace.QName("http://webservice.web.demo.com/", "queryUsers")); //用这句可以正常调用
call.setOperationName("queryUsers");//用这句就报错说找不到匹配的方法
Object res=call.invoke(new Object[]{});
PrintWriter out = response.getWriter();
out.println(res);
}catch (Exception e) {
e.printStackTrace();
}

其中,call.setOperationName的时候如果指定QName的namespaceURL和方法名就可以正常调用,如果不指定namespaceURL只写方法名就报错说找不到匹配的方法。我就想知道指定namespace和不指定有什么区别啊?什么时候可以不指定namespaceURL?我查了网上的代码,很多都直接写方法名没指定namespace呀。实在困惑,摆脱摆脱了

1个回答

xionglangs
xionglangs   Rxr 2017.01.12 11:13

明显是有2个相同的方法,你没有指定namespace,也就是命名空间,她就回去查所有的叫这个方法名的方法,如果只有一个,那好,就找到了方法,如果有多个,它就不知道选择哪个了,如果你指定了命名空间,要知道在同一个命名空间,取完全相同的名字,编译器是会报错的,也就是同一个命名空间不会有相同的名字,这时候,你指定了命名空间,你找的名字就唯一了。

u010295735
u010295735 回复编程爱好者熊浪: 没有。用的jdk写的,就写了一个实现类,然后Endpoint.publish发布的
一年多之前 回复
xionglangs
xionglangs 有用到什么配置文件吗
一年多之前 回复
u010295735
u010295735 但是webservice的服务端接口也是我自己写的呀,没有两个同名的方法啊
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
webservice 网络代理设置实例
调用webservice接口,设置网络代理参数
关于java调用webservice参数传递为空问题
通过Myeclipse10.0 jdk1.7调用VS2012 webService遇到java客户端参数传递不过去的问题,搞了一下午终于出结果了,其实网上好多方法都只是一部分,需要综合一下。   客户端我是用import org.apache.axis.client.Call;方法调用服务成功解决该问题的的,通过RPCServiceClient以及axis2自动生成的stub调用均未找到合适的
客户端使用AXIS的CALL调用
转自 http://blog.csdn.net/dyllove98/article/details/9295011 一、客户端使用AXIS的CALL调用   Java代码   package com.common;      import java.net.URL;   import java.util.ArrayList;   import j
php调用.net的WebService传参问题
从合作方获取数据,往往都是合作方提供xml格式的数据,或者rsync,甚至 直接SQLServer数据库,对应地,我写php解析xml,直接读取rsync推送过来的文件,用freetds连接SQLServer像读 mysql一样去读取数据。周五编辑把合作方的接口文档发信给我,我一看,地址形如http://server:7000 /Feature.asmx?wsdl,给了个方法,我立刻一头雾水,这是
webservice的引用数据类型的参数化
一、问题的引进 刚才我们的参数都是基本数据类型,那么如果参数是引用数据类型,那么将是如何表现的呢? 一、定义一个User类 具体的类如下: package com.npf.model; import java.io.Serializable; public class User implements Serializable{ private static fin
.net调用webservice接口例子
.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子.net调用webservice接口例子
java WebService接口调用,传JSON参数
转自:http://zheyiw.iteye.com/blog/1571222import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStreamWriter;  import java.net.HttpURLConnection;  import java.net.URL;    public ...
WebService之简单的访问接口,上传参数并获取数据
今天来简单说一下关于访问WebService接口,上传参数的问题 关于Webservice 我就不多说了,下面以公司的项目中用到的接口来实现以下: 1.准备工作:   在开始之前,有几个名词我们需要明白: 看一下上面的文件:  1.红圈一:Action 在Ws的规范里,用来定义消息请求的地址,也就是消息发送到哪个操作方法里, 这个就我们要访问的方法;  2.红圈二:命名空间,没有特
JAVA调用WEBSERVICE接口.zip
JAVA调用WEBSERVICE接口.zipJAVA调用WEBSERVICE接口.zip
java客户端调用webservice的两种方式
在实际系统集成开发的过程中,我们会经常遇到调接口的需求。下面整理了一下两种调webservice(SOAP)的常用代码。一、基于http和SOAP协议(不用axis和cxf框架)        URL wsUrl = new URL("http://ip:port/servicename.asmx?wsdl"); HttpURLConnection conn = (HttpURL...