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

  • 微博数据分析的19条总结(微博数据分析的应用)

    微博数据分析的19条总结(微博数据分析的应用)

  • word新建样式在哪里(word新建样式在哪)

    word新建样式在哪里(word新建样式在哪)

  • office激活和不激活有什么区别(office激活和不激活怎么查看)

    office激活和不激活有什么区别(office激活和不激活怎么查看)

  • 智能云输入法是病毒吗(智能云输入法是哪家公司的)

    智能云输入法是病毒吗(智能云输入法是哪家公司的)

  • 淘宝收藏夹别人能看到吗(淘宝收藏夹别人会看到吗)

    淘宝收藏夹别人能看到吗(淘宝收藏夹别人会看到吗)

  • cache中文名称是什么(cache的中文名是什么)

    cache中文名称是什么(cache的中文名是什么)

  • 打印机分类和区别(打印机分类和区别大全)

    打印机分类和区别(打印机分类和区别大全)

  • 照片能转成pdf格式吗(照片能变成pdf)

    照片能转成pdf格式吗(照片能变成pdf)

  • 菜鸟仓发货是什么意思(淘宝菜鸟仓库发货什么意思?)

    菜鸟仓发货是什么意思(淘宝菜鸟仓库发货什么意思?)

  • 苹果xled灯怎么打开(苹果xled灯怎么关闭)

    苹果xled灯怎么打开(苹果xled灯怎么关闭)

  • 美团会员有城市限制吗(美团会员使用是不是不分城市)

    美团会员有城市限制吗(美团会员使用是不是不分城市)

  • 小米mix2s支持20w快充吗(小米MIX2S支持aptX HD)

    小米mix2s支持20w快充吗(小米MIX2S支持aptX HD)

  • 陌陌拉黑怎么联系对方(陌陌拉黑后怎么找到对方)

    陌陌拉黑怎么联系对方(陌陌拉黑后怎么找到对方)

  • 抖音删除的视频怎么恢复(怎么样恢复抖音删除的视频)

    抖音删除的视频怎么恢复(怎么样恢复抖音删除的视频)

  • 电脑管家ssl协议未开启(电脑管家联网权限设置在哪里)

    电脑管家ssl协议未开启(电脑管家联网权限设置在哪里)

  • 抖音视频怎么大于15秒(抖音视频怎么大眼)

    抖音视频怎么大于15秒(抖音视频怎么大眼)

  • 苹果7什么时候上市的(苹果7什么时候上市的多少钱)

    苹果7什么时候上市的(苹果7什么时候上市的多少钱)

  • ai岗位主要做什么(ai行业是什么工作 做什么的)

    ai岗位主要做什么(ai行业是什么工作 做什么的)

  • 抖音怎么申请直播权限(抖音怎么申请直播电影权限该怎么操作)

    抖音怎么申请直播权限(抖音怎么申请直播电影权限该怎么操作)

  • beatsx怎么分辨左右耳

    beatsx怎么分辨左右耳

  • QQ邮箱为什么登录不了(qq邮箱为什么登录崩溃)

    QQ邮箱为什么登录不了(qq邮箱为什么登录崩溃)

  • 小米手环能打电话吗(小米6手环怎么充电)

    小米手环能打电话吗(小米6手环怎么充电)

  • 已解决无法访问您的文件该文件可能已被移至别处、修改或删除。 ERR_FILE_NOT_FOUND(无法访问或访问被拒绝是怎么解决)

    已解决无法访问您的文件该文件可能已被移至别处、修改或删除。 ERR_FILE_NOT_FOUND(无法访问或访问被拒绝是怎么解决)

  • 应纳税所得额为负数是什么意思
  • 分公司可以享受企业所得税优惠吗
  • 拍卖行如何征税呢
  • 收到劳务发票还未付款
  • 注册会计师考试时间2023
  • 红冲去年暂估的费用怎么做账
  • 每月长摊金额如何分摊
  • 增值税申报时有0.1元差额,怎么申报
  • 请客户旅游算不算贿赂
  • 存货盘点科目
  • 测绘费能否在土地出让
  • 商业汇票贴现怎么做
  • 年金的几种类型
  • 开公司前期费用有什么
  • 公司厂房拆迁要交税吗
  • 提前报废的固定资产怎么处理
  • 融资租入固定资产
  • 金蝶财务软件如何打印凭证
  • 小规模纳税人一年不超过多少万
  • 广告制作费属于现代服务吗
  • 开票码是什么意思
  • 经营性租赁怎么做账
  • 个人所得税未缴算偷税吗
  • 计入成本的有哪些科目
  • 卷烟批发环节消费税计算
  • 无票申报后开发票怎么申报
  • 公司购买茶叶应计入哪里
  • 需要会计报表的人
  • 小规模纳税人月销售额不超过10万免征
  • 营业外支出应填什么科目
  • 兼职人员工资个税怎么申报
  • 什么是短期借款利率
  • 出口暂定关税
  • 收到非税收入一般缴款书开发票吗
  • 食堂充值管理制度
  • 法定盈余公积金转增资本
  • 在win7中,打开资源管理器的快捷键
  • 评估价格是按原值还是净值
  • algarin.exe什么意思
  • 收据不可以入账吗
  • 税控系统技术维护费税率
  • 俄勒冈zip
  • 计提的增值税可以扣除吗
  • 前端工程搭建
  • 工会经费计算公式的例子
  • mysql零基础入门教程完整
  • wind安装
  • 企业所得税申报错误怎么更改
  • sql server 2000数据库不能备份的原因
  • 认缴制和实缴制的法律责任
  • 纳税申报资料报表怎么填
  • 固定资产后续支出一律计入固定资产成本
  • 委托加工物资账务
  • 合并资产负债表与母公司资产负债表要看那一个好
  • 冲销以前年度多提税金
  • 纳税检查企业多缴企业所得税如何处理
  • 利税总额计算公式表
  • 小规模纳税人系统查询
  • 股权关系怎么描述
  • 哪些单位需要缴纳残疾人保障金
  • 财务预算怎么做模板
  • 现金日记账怎么划线
  • 总账建账的原则包括
  • sql查询生成器
  • 没有光驱有什么影响
  • win8.1系统升级
  • js创建类对象的方法
  • shell脚本tr
  • 常用at命令集
  • css div高度填满父容器剩余空间
  • linux安全加固的内容是什么
  • WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
  • clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
  • 如何使用jquery实现点击按钮弹出一个对话框
  • python流数据
  • unity random.value
  • java script教程
  • 安卓开发界面ui设计器
  • javascript巧用eval函数组装表单输入项为json对象的方法
  • 电子税务局里怎么删除购票员
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设