一文带你了解Java对接soap接口

这篇具有很好参考价值的文章主要介绍了一文带你了解Java对接soap接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是soap协议

soap是一种简单的基于XML的协议:HTTP+RPC+XML

soap消息组成

A、Envelope(信封)元素,必选,可把此XML文档标识为一条SOAP消息。

B、Header(报头)元素,可选,包含头部信息(包含了使消息在到达最终目的地之前,能够被路由到一个或多个中间节点的信息)。

C、Body(主体)元素,必选,包含所有的调用和响应信息。

D、Fault元素,位于Body内,可选,提供有关处理此消息所发生错误的信息。

E、Attachment(附件)元素,可选,可通过添加一个或多个附件扩展SOAP消息。

SOAP接口调试工具:SoapUI

  1. 创建一个新的soap项目
    一文带你了解Java对接soap接口

  2. 填写项目名称以及wsdl接口
    一文带你了解Java对接soap接口

  3. 接口一般会有权限设置,这时需要输入对应的账号和密码或者也可以在request请求中的properties设置相应的账号和密码
    一文带你了解Java对接soap接口

一文带你了解Java对接soap接口

  1. soapUI根据wsdl解析出来的地址是基于内网,如果对接项目不是内网互通,那么需要把内网地址改成对接公司对应外网地址,这样接口才能ping得通
    一文带你了解Java对接soap接口

  2. 改完后根据业务组装相应数据后点击绿色箭头发送请求,至此接口调试完成

一文带你了解Java对接soap接口

Java对接调用soap接口:

  1. 相关http工具接口调用:该方式需要自己组装相应soap的xml,组装方式比较复杂(不推荐)

所以这里用postman模拟Java接口调用,请求方式POST:
(1)根据上面接口调试发现wsdl输入账号和密码后会重定向到一个地址,所以复制该地址至postman
一文带你了解Java对接soap接口

(2)构建认证请求头

一般SAP提供的接口都需要账号密码验证,所以第一步根据提供的账号(username)和密码(password)生成认证请求头。将其放置postman请求头以及设置内容为:xml

// 设置-授权信息
HttpHeaders headers = new HttpHeaders();
String basicStr = "Basic " + Base64.encodeBase64String((username + ":" + password).getBytes());
headers.add("Authorization", basicStr);

一文带你了解Java对接soap接口

(3)将参数组装至body,方式为xml,这样就可以调通接口了
一文带你了解Java对接soap接口
该方式对应复杂请求数据组装不友好,如需此方法调用对象组装成xml,可以考虑使用JAXB

  1. 通过SoapUI软件自动生成接口调用生成代码
    (1)在SoapUI软件中点击选中接口,右键 -> Genarate Code -> Axis 1.x Artifacts
    一文带你了解Java对接soap接口
    (2)输入wsdl地址以及文件夹目录,点击generate生成:
    一文带你了解Java对接soap接口
    (3)生成完去对应目录,将相应代码拷贝需要对接的项目中:
    一文带你了解Java对接soap接口
    (4)调用生成的类和方法

Java客户端调用接口代码已经自动生成,但是使用前还有3个地方需要调整

引入axis-1.4的依赖

<dependency>
	<groupId>axis</groupId>
	<artifactId>axis</artifactId>
	<version>1.4</version>
</dependency>

在生成的代码中设置账号和密码,如果不是基于内网还需将内网改成相应外网地址
自动生成的Java文件中有一个以Stub结尾的Java文件,找到createCall()这行代码的位置,设置账号和密码和相应的地址(如果自动生成的地址可以ping通这个就不用)的值。
一文带你了解Java对接soap接口
组装data请求参数,调用对应的locator类的getHTTP_Port()方法获取远程调用接口,直接调用接口内的方法即可

XXXServiceLocator locator = new XXXServiceLocator();
XXX xxx = locator.getHTTP_Port();
ResponseDataItems[] responseDataItems = xxx.XXX(data);

部分思路来源于:JAVA客户端调用SAP提供的接口(保姆级教程)文章来源地址https://www.toymoban.com/news/detail-473623.html

到了这里,关于一文带你了解Java对接soap接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文带你了解什么是数学建模

    ​ 数学建模,就是根据实际问题来建立数学模型,对数学模型来进行求解,然后根据结果去解决实际问题。用通俗易懂的话讲就是1到3个人组队要从3-4个“应用题”中选出一个题之后独立在指导老师的指导下建立一个数学模型来解这道题最后再将数学模型、解题思路、方法过

    2024年02月04日
    浏览(46)
  • 【Docker】什么是Docker?一文带你了解

    Docker提供了标准化交付的创新途径 ,使开发、测试、部署过程通过流水线工具可见可控可信。 所以总结起来就是:Docker解决了运行环境和配置问题,构建过程标准化,也就方便做持续集成和持续交付。 目录 前言 1、Docker的介绍: 2、Docker的由来: 3、Docker的发展史: 4、Doc

    2024年02月12日
    浏览(43)
  • 什么是VHDL?一文带你了解VHDL语言

    基于FPGA的SOC在嵌入式系统应用越来越广了,比较流行的硬件描述语言有两种Verilog HDL/VHDL,均为IEEE标准。VHDL如果有C语言基础的话就会比较容易上手。而VHDL语言则需要Ada编程基础。另外VHDL语言具有大量成熟的模块,从某种角度说VHDL更具生命力。 VHDL 的历史 VHDL 的 英 文 全 名

    2024年02月05日
    浏览(47)
  • HTTPS介绍:一文带你了解什么是HTTPS

    随着互联网的快速发展,网络安全问题日益凸显。在互联网上传输敏感信息、进行在线交易和共享个人数据时,确保数据的安全性和隐私保护成为了至关重要的任务。为了解决这些问题, HTTPS(超文本传输安全协议) 应运而生,成为了保护网络通信的重要一环。 HTTPS是HTTP协

    2024年02月09日
    浏览(45)
  • 一文带你全面了解什么是自动化测试?

    目录 简介 自动化测试概述 自动化测试目标 自动化测试流程 1. 测试计划和设计 2. 测试脚本开发 3. 测试执行和管理 4. 测试维护和优化 自动化测试最佳实践 自动化测试工具和框架 结论 软件测试是软件开发过程中一个必不可少的环节。传统的软件测试方式通常是手动测试,即

    2024年02月16日
    浏览(40)
  • 什么是Docker容器?一文带你了解,看完直接学会

    1.1麻烦的环境部署 1.2虚拟机(Virtual Machine) 占用资源多:虚拟机需要安装整个操作系统,自然会消耗大量内存和硬盘空间。如我们只需要运行1MB的软件,有时候也不得不安装几个G的环境才能运行。 运行步骤冗余:虚拟机安装的是完整的系统,每次运行程序都需要按部就班,

    2024年02月03日
    浏览(43)
  • 带你彻底了解什么是API接口?

    作为一名资深程序员,我知道很多人对API接口这个名词可能还不太了解。今天我要给大家分享一些关于API接口的知识,让你们彻底了解它的概念和作用。一起来看看吧! 首先,我们先来解释一下API的全称─Application Programming Interface。简单来说,API是软件系统间相互通信的一种

    2024年02月13日
    浏览(43)
  • 【JAVASE】带你一文了解java中异常捕获

        我们在java的学习之中可能会听到异常这个词,那么当程序出现异常之后,后面的程序还能正常运行吗,我们又该如何处理异常呢,本文就带你详细了解java中的异常。       在生活中,我们时常会感觉到不舒服,头疼,程序中也是一样的,程序员们每天可能会书写大量的

    2024年03月22日
    浏览(47)
  • 【JAVA】一文带你了解java的数据类型与变量

    作者主页:paper jie的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏

    2024年02月14日
    浏览(35)
  • 【K8s】K8s是什么,一文带你了解kubernetes

    作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主

    2024年02月03日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包