java 调用webservice asmx「建议收藏」

java 调用webservice asmx「建议收藏」用的jar包axis,可以在http://download.csdn.net/download/xiaoyong8823/4391971这里下载因为最近有个项目要调用webservice接口,之前接触的都是Java开发服务端和客户端的接口,开发前服务端一般会给个以http://xxx/services?wsdl地址的文件或者地址。这次对方给我个http://xxxx/serv

大家好,又见面了,我是你们的朋友全栈君。

用的jar包axis,可以在http://download.csdn.net/download/xiaoyong8823/4391971 这里下载


因为最近有个项目要调用webservice接口,之前接触的都是Java开发服务端和客户端的接口,开发前服务端一般会给个以http://xxx/services?wsdl地址的文件或者地址。这次对方给我个http://xxxx/service/getinfo.asmx  的连接,我就傻眼了,之前没有遇到过,是不是给错了,跟对方联系说是他们的服务端是用C#开发的。c#没学过,webservice的特性之一就是可以跨语言的,不会只能找度娘。

       参考了:http://blog.csdn.NET/leon_ice/article/details/4466613 的文章自己也总结了点东西

      本文只将如果用java开发客户端

      1、.asmx调用方式和之前cxf 或者xfire 方式不同,不需要生成客户端代码,直接调用使用,先把我的代码贴出来,然后根据代码一步步说明。

public String test() throws RemoteException, ServiceException, MalformedURLException{

String inputParam = “测试“;
Service service = new Service();  
String url = “http://xxxxxxx/service/getinfo.asmx”;  //URL地址
String namespace = “http://tempuri.org/”; 
String actionUri = “getinfo”; //Action路径  
String op = “getinfo”; //要调用的方法名  
Call call = (Call) service.createCall();  
call.setTargetEndpointAddress(new java.net.URL(url));  
call.setUseSOAPAction(true);  
call.setSOAPActionURI(namespace + actionUri); // action uri  
call.setOperationName(new QName(namespace, op));// 设置要调用哪个方法  
// 设置参数名称,具体参照从浏览器中看到的  
call.addParameter(new QName(namespace, “strMac”), XMLType.XSD_STRING, ParameterMode.IN);  //设置请求参数及类型
//call.setReturnType(new QName(namespace,”getinfo”),Model.class); //设置返回结果为是某个类
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置结果返回类型
Object[] params = new Object[] {inputParam};  
String result = (String) call.invoke(params); //方法执行后的返回值  
System.out.println(result);
return result;
}


      2、打开http://xxxx/service/getinfo.asmx  连接会出现类似如下内容,红框部分为调用方法,



   3、点击进去后可以看到,SOAPAction 对应上面代码中的namespace,注意去掉后面的方法名,后面会单独拼接这个方法名

         可以看到请求参数名、类型和返回结果类型。




如果报的错误是格式错误 ,那么有可能是参数问题,即使接口写的是int类型,传参也需要传入字符串类型

call.addParameter(new QName(namespace, “strMac”), XMLType.XSD_INT, ParameterMode.IN);  //设置请求参数及类型

如这里写的int ,后面object’数组仍然要写“333”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137664.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • siamfC「建议收藏」

    siamfC「建议收藏」classSiameseAlexNet(nn.Module):def__init__(self,gpu_id,train=True):super(SiameseAlexNet,self).__init__()self.features=nn.Sequential(nn.Conv2d(3,96,11,2),nn.BatchNorm2d(96),nn.ReLU(inp.

    2022年10月1日
    3
  • svn如何删除当前账号,重新登录

    svn如何删除当前账号,重新登录

    2021年7月17日
    105
  • mysql转换字符串为数字_mysql字符与数字转换「建议收藏」

    mysql转换字符串为数字_mysql字符与数字转换「建议收藏」本节内容:mysql字符与数字转换的方法1,将字符的数字转成数字,比如’0’转成0可以直接用加法实现。例如:将pony表中的d进行排序,可d的定义为varchar:复制代码代码示例:select*fromponyorderby(d+0)2,在进行ifnull处理时,比如ifnull(a/b,’0′)会导致a/b成了字符串,因此需要把’0’改成0。3,比较数字和varchar时…

    2022年5月30日
    101
  • 关于爱未删减版高清_init not tainted

    关于爱未删减版高清_init not taintedhttp://blog.csdn.net/wangkaiblog/article/details/8741042http://blog.linux.org.tw/~jserv/archives/001954.html

    2022年8月11日
    7
  • Dubbo负载均衡策略及自行扩展负载均衡策略

    Dubbo负载均衡策略及自行扩展负载均衡策略负载均衡在集群负载均衡时,Dubbo提供了多种均衡策略,缺省为random随机调用。可以自行扩展负载均衡策略,参见:负载均衡扩展负载均衡策略RandomLoadBalance随机,按权重设置随机概率。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。RoundRobinLoadBalance轮循,按公约后的权重设置轮循比率。存在…

    2022年7月11日
    13
  • uat测试环境是预生产环境_php开发环境与测试环境

    uat测试环境是预生产环境_php开发环境与测试环境开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告。测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。生产环境:是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者

    2022年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号