package com.demo.modules.si.util;import org.apache.axis.client.Call;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import com.demo.modules.si.config.Config;/*** WebService接口调用工具类* 使用AXIS的方式调用WebService,区别于.wsdl文件生成客户端代码的方式* @author 郭旭**/
public class WebService {/*** 调用WebService接口,AXIS方式直接引用远程的.wsdl文件* 接口地址:http://ip:port/ormrpc/services/WSKDServiceFacade?wsdl* @param method 方法名(该方法无参数)* @return 接口返回值* */public static String invoke(String method) throws Exception{String result = null;String address = Config.URL + Config.WSDL_SP;Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(address);call.setOperationName(method); // 方法名称call.setReturnType(XMLType.XSD_STRING); // 设置返回类型result = (String) call.invoke(new Object[]{});return result;}/*** 调用WebService接口,AXIS方式直接引用远程的.wsdl文件* 调用接口时,传入方法名,字段与字段值顺序需要严格按照接口定义* 接口地址:http://ip:port/ormrpc/services/WSKDServiceFacade?wsdl* @param method 方法名* @param keys 字段(方法参数)* @param values 字段值(参数对应值)* @return 接口返回值* */public static String invoke(String method, Object[] keys, Object[] values) throws Exception{String result = null;String address = Config.URL + Config.WSDL_SP;Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(address);call.setOperationName(method); // 方法名称call.setReturnType(XMLType.XSD_STRING); // 设置返回类型params(call, keys, values);result = (String) call.invoke(values);return result;}/*** 调用WebService接口之前,方法参数及参数赋值* 当前接口中参数类型仅限于字符串、整数、布尔,参数为空的情况为字符串类型* @param call 接口访问请求* @param keys 字段(方法参数)* @param values 字段值(参数对应值)* */private static void params(Call call, Object[] keys, Object[] values) {if(keys == null || values == null) return;if(keys.length == 0 || values.length == 0) return;if(keys.length != values.length){throw new IllegalArgumentException("接口方法参数与参数值不匹配!");}for(int i = 0; i < values.length; i++){String key = (String) keys[i]; //方法参数Object value = values[i]; //参数值if(value == null){call.addParameter(key, XMLType.XSD_STRING, ParameterMode.IN);} else if(value instanceof String){call.addParameter(key, XMLType.XSD_STRING, ParameterMode.IN);} else if(value instanceof Integer){call.addParameter(key, XMLType.XSD_INTEGER, ParameterMode.IN);} else if(value instanceof Boolean){call.addParameter(key, XMLType.XSD_BOOLEAN, ParameterMode.IN);}}}}

Java,Axis方式调用WebService接口,支持多参数相关推荐

  1. java用axis方式调用webservice接口

    最近需要使用webservice接口,所以总结了一下全过程,希望能够对大家有所帮助. 开发使用的项目框架是ssm框架,tomcat服务器. 首先我们会拿到一个调用webservice接口的网址,类似这 ...

  2. java使用axis2调用webservice接口实例

    说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...

  3. JAVA使用HttpClient调用webservice接口

    JAVA使用HttpClient调用webservice接口 关于HttpClient用法参考: HttpClient-4.5.2官方教程完整翻译 官方教程原文链接 HttpClient下载地址: 链 ...

  4. Java使用XFire调用WebService接口

    看了一些Java调用WebService接口的例子,很多都是Ctrl+C,Ctrl+V的,其中有很多拿来使用后发现有错误,令人郁闷,特此写了一篇经过测试的,只是一个小例子. 服务端(为客户端提供Web ...

  5. java httpclient访问webservice_java通过HttpClient方式和HttpURLConnection方式调用WebService接口...

    1.引入maven依赖: org.apache.httpcomponents httpclient 4.5 2.请求工具类: package com.hanvon.iface.web.utils; i ...

  6. soap方式调用webservice接口

    因工作需要对接三方的webservice接口,根据对方提供的WSDL进行开发 1.将WSDL转为java文件,找到所需接口的入参与出参实体复制到本地项目,可直接作为调用的入参与回调的接收实体 可参考 ...

  7. 利用axis调用webservice接口

    package test;import javax.xml.namespace.QName;import org.apache.axis.client.Call; import org.apache. ...

  8. java调用webservice接口(.asmx)

    前几天对接阿里云短信接口时,需要调用其他系统的数据,该系统开发人员给我提供了webservice接口.对于从来没见过webservice接口的我,真的是一脸懵.现在把记录一下,方便自己以后用,说不定也 ...

  9. JAVA调用SAP接口地址_Java以webservice方式调用SAP接口传输数据

    Java以webservice方式调用SAP接口传输数据,在SAP中生成 会计凭证/冲销会计凭证 1.生成会计凭证(已完成) 2.冲销会计凭证(以下教程截图以该接口为例) Java调用sap的webs ...

最新文章

  1. 图像处理和模式识别等技术的快速发展大大地推动了机器视觉的发展
  2. 简单粗暴方便好用树莓派FTP远程文件服务器
  3. Linux的ext4文件系统学习笔记
  4. php自动include,PHP include_php
  5. $(obj).each 和 $.each() 区别
  6. php的四种常见运行方式
  7. SAP MM t-code 全
  8. BMFont 导出PNG图片没有合成
  9. oracle14 jar的pom,MyEclipse环境下如何采用Maven导入ojdbc14.jar和ojdbc6.jar | 贝壳里的海...
  10. Python3学习笔记_INDEX(汇总)
  11. AIS数据-渔船的货船的区分(Distinction between the cargo ships of fishing boats)
  12. vba删除word中图片与文本框等shape
  13. 游戏建模资料大放送,3DMX+MAYA+ZBrush集教程,20G教学视频
  14. PayPal完成对区块链公司的投资首秀
  15. Kotlin入门与进阶:语法(二)类成员,运算符,语句,表达式
  16. 网易微博宣布将用户迁移至轻博客Lofter
  17. 坚持30天打卡赠书新玩法!
  18. 【Tensorflow】mnist_with_summaries.py报错
  19. 一文教你如何有效做好广告投放
  20. Python输出指定位数的浮点数

热门文章

  1. 【百度大脑新品体验】人脸面部动作识别
  2. android win10 投屏,安卓手机投影win10不成功,版本升级前可以
  3. 【论文】mac系统下的citespace与使用
  4. Oracle PRM-DUL使用经验
  5. oracle dul for windows 一键打开,oracle 数据恢复
  6. 链表中为何使用二级指针
  7. 影响cmos阈值电压的因素
  8. 爱创科技行业观察:中药全链条监管进入新阶段!
  9. C语言-输入任意多个数字,存到整型数组,支持任意间隔符,同时支持输入字母存到字符数组中
  10. pandas.Series.str.extract 正则提取数据