位置: IT常识 - 正文

使用axis调用WebService,Java WebService调用工具类(客户端调用axis1.4的方式)

编辑:rootadmin
使用axis调用WebService,Java WebService调用工具类 文章目录WebService 简介概述使用 axis 调用 WebService引入依赖WebService 调用工具类WebService 简介概述

推荐整理分享使用axis调用WebService,Java WebService调用工具类(客户端调用axis1.4的方式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:axis2客户端调用,axis客户端调用,axis客户端调用,axis2调用webservice,使用axis调用webservice报405,使用axis调用webservice报405,axis2调用webservice,axis调用webservice,内容如对您有帮助,希望把文章链接给更多的朋友!

能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据 WebService 规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。

使用axis调用WebService,Java WebService调用工具类(客户端调用axis1.4的方式)

也就是说可以实现多语言、跨平台数据交互。

使用 axis 调用 WebService引入依赖

pom.xml 依赖如下:

<dependency> <groupId>org.apache.axis</groupId> <artifactId>axis</artifactId> <version>1.4</version></dependency><dependency> <groupId>org.apache.axis</groupId> <artifactId>axis-jaxrpc</artifactId> <version>1.4</version></dependency><dependency> <groupId>axis</groupId> <artifactId>axis-wsdl4j</artifactId> <version>1.5.1</version></dependency><dependency> <groupId>commons-discovery</groupId> <artifactId>commons-discovery</artifactId> <version>0.2</version></dependency>WebService 调用工具类package com.micromaple.common.utils;import com.google.common.collect.Lists;import lombok.extern.slf4j.Slf4j;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis.encoding.XMLType;import org.apache.axis.encoding.ser.BeanDeserializerFactory;import org.apache.axis.encoding.ser.BeanSerializerFactory;import org.apache.axis.message.SOAPHeaderElement;import org.apache.axis.types.Schema;import org.apache.commons.collections.MapUtils;import javax.xml.namespace.QName;import javax.xml.rpc.ParameterMode;import java.util.List;import java.util.Map;import java.util.Set;/** * WebService - 工具类 * Title: WebServiceUtils * Description: * * @author Micromaple * @version 1.0.0 * @date 2022/7/1 12:14 */@Slf4jpublic class WebServiceUtils {// 接口调用地址private static String url = "http://127.0.0.1:8080/webservice.asmx";// 命名空间private static String namespace = "http://tempuri.org/"; /** * WebService - 调用接口 * * @param methodName 函数名 * @param params 参数 * @param clazz 返回对象class * @return 返回结果(Object) */ public static <T> T call(String methodName, Map<String, String> params, Class<T> clazz) { // log.info("调用 WebService 发送参数==>" + MapperUtils.mapToJson(params)); String soapActionURI = namespace + methodName; try { Service service = new Service(); SOAPHeaderElement header = new SOAPHeaderElement(namespace, methodName); header.setNamespaceURI(namespace); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(url); call.setOperationName(new QName(namespace, methodName)); // 添加参数 List<String> parameterList = Lists.newArrayList(); if (params != null) { Set<String> paramsKey = params.keySet(); for (String key : paramsKey) { call.addParameter(new QName(namespace, key), XMLType.XSD_STRING, ParameterMode.IN); String pValue = MapUtils.getString(params, key); header.addChildElement(key).setValue(pValue); parameterList.add(pValue); } } call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionURI); call.addHeader(header); // 进行序列化 实体类也要序列化 implements Serializable call.registerTypeMapping(clazz, new QName(namespace, soapActionURI), new BeanSerializerFactory(clazz, new QName(namespace, soapActionURI)), new BeanDeserializerFactory(clazz, new QName(namespace, soapActionURI))); // 设置输出的类 call.setReturnClass(clazz); // 接口返回结果 T result = (T) call.invoke(parameterList.toArray()); log.info("调用 WebService 接口返回===>" + result); return result; } catch (Exception e) { log.error("调用 WebService 接口错误信息==>" + e.getMessage()); } return null; } /** * WebService - 接口调用 * * @param methodName 函数名 * @param params 参数 * @return 返回结果(String) */ public static String call(String methodName, Map<String, String> params) { // log.info("调用 WebService 发送参数==>" + MapperUtils.mapToJson(params)); String soapActionURI = namespace + methodName; try { Service service = new Service(); SOAPHeaderElement header = new SOAPHeaderElement(namespace, methodName); header.setNamespaceURI(namespace); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(url); call.setOperationName(new QName(namespace, methodName)); // 添加参数 List<String> parameterList = Lists.newArrayList(); if (params != null) { Set<String> paramsKey = params.keySet(); for (String key : paramsKey) { call.addParameter(new QName(namespace, key), XMLType.XSD_STRING, ParameterMode.IN); String pValue = MapUtils.getString(params, key); header.addChildElement(key).setValue(pValue); parameterList.add(pValue); } } call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionURI); call.addHeader(header); // 设置返回类型 call.setReturnType(new QName(namespace, methodName), String.class); // 接口返回结果 String result = (String) call.invoke(parameterList.toArray()); log.info("调用 WebService 接口返回===>" + result); return result; } catch (Exception e) { log.error("调用 WebService 接口错误信息==>" + e.getMessage()); } return null; } /** * WebService - 调用接口 * * @param methodName 函数名 * @param params 参数 * @return 返回结果(String) */ public static String call2(String methodName, Map<String, String> params) { // log.info("调用 WebService 发送参数==>" + MapperUtils.mapToJson(params)); String soapActionURI = namespace + methodName; try { Service service = new Service(); SOAPHeaderElement header = new SOAPHeaderElement(namespace, methodName); header.setNamespaceURI(namespace); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(url); call.setOperationName(new QName(namespace, methodName)); // 添加参数 List<String> parameterList = Lists.newArrayList(); if (params != null) { Set<String> paramsKey = params.keySet(); for (String key : paramsKey) { call.addParameter(new QName(namespace, key), XMLType.XSD_STRING, ParameterMode.IN); String pValue = MapUtils.getString(params, key); header.addChildElement(key).setValue(pValue); parameterList.add(pValue); } } call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionURI); call.addHeader(header); // 设置返回类型 call.setReturnType(XMLType.XSD_SCHEMA); // 接口返回结果 Schema schemaResult = (Schema)call.invoke(parameterList.toArray()); String result = ""; for(int i = 0; i<schemaResult.get_any().length; i++){ result = result + schemaResult.get_any()[i]; } log.error("调用 WebService 接口返回===>" + result); return result; } catch (Exception e) { log.error("调用 WebService 接口错误信息==>" + e.getMessage()); } return null; }}第一个方法为返回对象的方式,区别在于需要定义返回对象,属性值需要跟 WebService 中的返回对象保持一致。第二个方法适用于调用 WebService后,返回的值为 String 类型。

参数详解:

methodName:函数名。需要调用的 WebService 的函数名称。

params:参数。调用 WebService 时需传入的参数。

本文链接地址:https://www.jiuchutong.com/zhishi/295347.html 转载请保留说明!

上一篇:Vue ref获取元素和组件实例(vue ref获取元素高度)

下一篇:TypeScript选项‘importsNotUsedAsValues‘和‘preserveValueImports‘弃用(typescriptlang)

  • 视同销售增值税申报表怎么填写
  • 本年利润总分类账图片
  • 个人独资企业需要交什么税
  • 保险公司报销修手机
  • 非限定性净资产相当于本年利润吗
  • 小规模税控设备维护费怎么填申报表格
  • 房地产企业还有未来吗
  • 固定资产改变用途进项转出
  • 长期待摊费用进项税可以一次性抵扣吗?
  • 承包外单位食堂会计怎么做账
  • 如何查询增值税申报表
  • 小规模企业所得税标准
  • 增值税税负低如何解释
  • 餐饮发票增值税税率是多少
  • 该期已经申报此税种且数据已提交,不能预约扣款
  • 零申报的企业年末的利润表可以为零吗?
  • 资产评估入账的评估报告
  • 电子税务局财报怎么报
  • 个人缴付年金的扣除限额
  • 银行借款利息支出可以税前扣除吗
  • dhcp的安全防范
  • 预付款,尾款
  • php字符串定义
  • 备用金借款有利息吗
  • 企业自建房需要交哪些税
  • 溢价对外投资账务处理
  • torch.save用法
  • uniapp image mode
  • 企业清算期间会计分录
  • 固定资产加速一次性扣除
  • 银行承兑汇票背书什么意思
  • php数组查询
  • excel2016添加指定行数
  • 老板的财务
  • 进项税发票可以跨年认证吗
  • 租赁房屋开具发票商品名称
  • 小规模纳税人怎么核定税种
  • 固定资产一次性折旧账务处理
  • mongodb数据表设计怎么写
  • sqlserver修改值
  • 定期定额自行申报表应税项填多少
  • 备用金有发票抵扣吗
  • 附加税多计提了怎么做分录
  • 涉税信息声明怎么提供
  • 老板买了手机,算入什么费用
  • 机器设备一般折旧几年
  • 公司运营成本如何计算
  • 借款后的报销流程怎么写
  • 收到以前年度税费返还的会计分录
  • 人工费没有发票怎么办
  • 营业外支出增加说明了什么
  • 跨年取得的发票
  • 银行账与实际账不符
  • 采用账龄分析法计提坏账准备
  • win7出现蓝屏
  • 微软软件怎么用
  • 六款常见的墨水
  • Win10 Mobile RS2预览版14915上手视频评测
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • win8计算器在哪里找
  • win8系统出现闪屏
  • windows8如何使用
  • 新闻客户端app
  • java框架怎么用
  • 用jQuery.ajaxSetup实现对请求和响应数据的过滤
  • 可实现的系统
  • javascript入门经典
  • python抓取软件界面数据
  • 详细的测试用例
  • jquery mobile
  • 批处理文件中echo什么意思
  • 批处理隐藏盘符
  • c# unity ioc
  • js生成页面
  • python自带的gui
  • 2021年水利基金的税率是多少
  • 钢材出口关税税率是多少
  • 公积金提取需要几个工作日
  • 留底税额怎么写分录
  • 财税知识
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设