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

  • 10400核显相当于什么显卡(10400f核显相当于)

    10400核显相当于什么显卡(10400f核显相当于)

  • 为什么拼多多设置里面没有拼小圈(为什么拼多多设置里没有拼小圈)

    为什么拼多多设置里面没有拼小圈(为什么拼多多设置里没有拼小圈)

  • 宝宝助手为什么打不开(宝宝助手为什么登录不了)

    宝宝助手为什么打不开(宝宝助手为什么登录不了)

  • 微信群发错了无法撤回 怎么删除(微信群发错了无法撤回怎么补救)

    微信群发错了无法撤回 怎么删除(微信群发错了无法撤回怎么补救)

  • 联想台式主机怎么u盘启动(联想台式主机怎么插线图解)

    联想台式主机怎么u盘启动(联想台式主机怎么插线图解)

  • 华为可以插内存卡吗(华为可以插内存卡的平板)

    华为可以插内存卡吗(华为可以插内存卡的平板)

  • 华为手机电池鼓包了还能用吗(华为手机电池鼓起来了,把后盖顶起来了)

    华为手机电池鼓包了还能用吗(华为手机电池鼓起来了,把后盖顶起来了)

  • wan/lan是什么接口(wan lan哪个接)

    wan/lan是什么接口(wan lan哪个接)

  • 手环连不上手机怎么办(小米6手环连不上手机)

    手环连不上手机怎么办(小米6手环连不上手机)

  • 微信运动添加关注的人找不到(微信运动添加关注搜不到对方)

    微信运动添加关注的人找不到(微信运动添加关注搜不到对方)

  • 佳能相机连拍怎么设置(佳能相机连拍怎么拍)

    佳能相机连拍怎么设置(佳能相机连拍怎么拍)

  • 微信wifi一键连安全吗(微信wifi一键连会盗信息吗)

    微信wifi一键连安全吗(微信wifi一键连会盗信息吗)

  • 华为mate20pro指纹解锁在哪里(华为mate20pro指纹设置不见了)

    华为mate20pro指纹解锁在哪里(华为mate20pro指纹设置不见了)

  • soul里面访客怎么看(soul访客次数真实吗)

    soul里面访客怎么看(soul访客次数真实吗)

  • 淘宝自己的二维码在哪里(淘宝自己的二维码能干嘛)

    淘宝自己的二维码在哪里(淘宝自己的二维码能干嘛)

  • 荣耀手机锁屏时间怎么设置(荣耀手机锁屏时收不到微信信息)

    荣耀手机锁屏时间怎么设置(荣耀手机锁屏时收不到微信信息)

  • 拼多多精品推荐怎么删除(拼多多精品推荐是经常看的吗)

    拼多多精品推荐怎么删除(拼多多精品推荐是经常看的吗)

  • 拼多多极速退款买家不退货怎么办(拼多多极速退款在哪里设置的)

    拼多多极速退款买家不退货怎么办(拼多多极速退款在哪里设置的)

  • 魅族手机怎么补电(魅族手机怎么补电话号码)

    魅族手机怎么补电(魅族手机怎么补电话号码)

  • 阀控式铅酸蓄电池用途(阀控式铅酸蓄电池能加修复液吗)

    阀控式铅酸蓄电池用途(阀控式铅酸蓄电池能加修复液吗)

  • 电脑开机后屏幕是黑的(电脑开机后屏幕不显示)

    电脑开机后屏幕是黑的(电脑开机后屏幕不显示)

  • 粘贴在哪里找(粘贴在哪里找出来)

    粘贴在哪里找(粘贴在哪里找出来)

  • 如何解决Win10系统提示初始化配置资源失败?(如何解决WIN10系统文件夹只读属性不能更改)

    如何解决Win10系统提示初始化配置资源失败?(如何解决WIN10系统文件夹只读属性不能更改)

  • 纳税人识别号怎么看是不是一般纳税人
  • 增值税零税率是一种税收优惠政策
  • 资金账簿减半征收印花税财税2018 50号
  • 专利年费是不是只能一项一项交
  • 收入支出结余公式原理
  • 分公司以前年度能弥补亏损吗
  • 发票二维码只有一半可以收吗
  • 现金清查时,发现长款200元,未查明原因,经批准后转销
  • 预交所得税比较多怎么办?
  • 一般纳税人企业所得税多久申报一次
  • 企业销售使用过的固定资产如何开票
  • 签订代销合同的人有没有退货权
  • 利息收入红冲怎么做
  • 公司搞活动的话术
  • 出售股票会计怎么做分录
  • 购买固定资产未收到发票怎么办
  • 其他服务业经营范围包括哪些
  • 广告公司需要交消费税吗
  • 增值税税额转出申报怎么填写
  • 会计与税法折旧的关系
  • 冲回坏账准备分录
  • 本期就地缴纳的税额跟本期已缴税额
  • &quot;专项储备&quot;在合并报表层面如何处理?
  • 如果注册资本没有到账如何处理
  • 出口退税怎么申报个税
  • nginx不支持ipv6
  • windows无法连接到system Events
  • kb4586863更新
  • 付的押金冲抵部分怎么算
  • 关于出售使用过的车辆
  • php读取word
  • uniapp怎么运行到手机模拟器
  • 龟背竹的养殖方法和管理
  • PHP:mcrypt_create_iv()的用法_Mcrypt函数
  • vue3 + ts
  • nvm安装教程
  • 10倍理论
  • pytorch新手入门
  • 应交税费的主要成本
  • 物业管理可以开保洁发票吗
  • 基建工程转固定资产
  • 会计人员信息采集怎么看审核通过
  • 主营业务收入用三栏式吗
  • 所得税年度报表申报完怎么打印
  • 企业增值税申报流程
  • 个人所得税申报截止时间
  • 普票和专票的
  • sqlserver2008无法连接到local用户登录失败
  • mysql error!
  • 累计预扣法税率表
  • 物流公司扣押货物算犯法吗
  • 小规模增值税申报未开票收入怎么填
  • 文化事业建设费减免政策
  • 公司卖出货物没有发票
  • 电子承兑汇票接收流程
  • 债务重组的方式不包括借新债还旧债
  • 融资租赁与按揭的区别
  • 购买设备分期付款凭证怎么做
  • 房屋租赁费属于变动成本吗
  • 纳税调整收入包括哪些
  • 自产自销免税发票可以抵税吗
  • 房地产企业增值税计算
  • mysql基本sql语句大全(基础用语篇)
  • ubuntu /opt
  • linux虚拟机基本操作
  • 安装centos图形界面
  • xp系统快捷启动按哪个
  • win8的开始
  • 手写输入界面
  • jQuery Real Person验证码插件防止表单自动提交
  • sed配合grep
  • linux服务器硬件配置要求
  • node.js介绍
  • shell脚本clear
  • jquery刷新页面的方法
  • 友盟的功能
  • jQuery+formdata实现上传进度特效遇到的问题
  • mysql数据类型大全
  • python电话本
  • 广东省电子税务局app下载官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设