位置: 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)

  • 国企的注册资本也很少吗
  • 无法支付的应付账款需要交增值税吗
  • 领发票凭证做什么用
  • 增值税 不含税
  • 出口的港杂费包括哪些
  • 转登记为小规模纳税人政策
  • 租金收入需要缴增值税吗
  • 房屋评估价格是否含增值税
  • 工程设备租赁带什么手续
  • 先进制造业企业按照当期可抵扣进项税额
  • 收到公众号申请的小额打款认证怎么入账?
  • 新领的发票怎么读入开票系统
  • 专票和国税额差很多
  • 国税未核定税种怎么处理
  • 其他应收款在资产负债表中是负数
  • 劳务派遣公司会扣工资吗
  • 委托收款有哪些
  • 增值税附加税包含哪些税
  • 本月暂估入库,下月
  • 保户储金科目属于保险公司的什么科目
  • 出口退税的钱退到哪里了
  • 小规模固定资产会计科目
  • win7电脑怎么样
  • php实现断点续传
  • windows11播放视频不清晰
  • 苹果手机系统升级后电量消耗快
  • elementui ts
  • laravel with查询指定字段
  • 二手商铺要缴纳契税吗
  • 企业支付给员工的一次性伤残就业补助金计入什么科目
  • html关于边框的代码
  • 替票报销开什么发票
  • discuz论坛安装步骤
  • 应付职工薪酬怎么冲平
  • css媒体查询不起作用
  • 人力资源增加什么资金积累
  • 实施资本公积金的目的
  • 财务会计该如何处理客户以个人账号转款到公司公账?
  • 小规模纳税人转让土地使用权税率
  • 综合评价怎么改
  • 个体工商户怎么年报
  • 税率变更协议怎么写
  • 预付房租计入长期待摊费用吗
  • 房产税应纳税额计算例题
  • 物业管理公司收入确认
  • 已认证发票红冲全流程操作
  • 委托加工的材料成本包括运费吗
  • 筹建期费用账务处理
  • 差旅费住宿专票能否抵扣
  • 主营业务成本为什么借增贷减
  • 企业经营情况怎么写版本
  • 结账时应当结出每个账户的期末余额对吗
  • mysql备份与恢复数据库
  • win7系统开启telnet服务
  • centos彻底删除文件命令
  • fedora linux安装教程
  • mac系统文件名
  • windowssystem32configsystem 损坏
  • hp电脑系统win8系统
  • 创建网站根目录
  • cocos2dx 3.5 ”hello world“解析
  • excel f9刷新
  • android 动态布局
  • 批处理/s
  • android属性动画
  • div style display none
  • python def用法理解
  • nodejs bull
  • jqueryw3c
  • npm yarn命令对比
  • jquery中可以用什么方法来获取和设置元素属性
  • 如何让listview提高效率
  • pycharm flask框架
  • 红字发票税务局不愿意退税怎么处理
  • 贵州地税网上申报大厅
  • 车船税完税凭证去哪里打印
  • 手表不贵比较好的品牌
  • 增值税普票十万怎么开
  • 百望税控盘怎么导出清单明细
  • 轮胎消费税的征收环节
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设