一文带你了解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项目
    在这里插入图片描述

  2. 填写项目名称以及wsdl接口
    在这里插入图片描述

  3. 接口一般会有权限设置,这时需要输入对应的账号和密码或者也可以在request请求中的properties设置相应的账号和密码
    在这里插入图片描述

在这里插入图片描述

  1. soapUI根据wsdl解析出来的地址是基于内网,如果对接项目不是内网互通,那么需要把内网地址改成对接公司对应外网地址,这样接口才能ping得通
    在这里插入图片描述

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

在这里插入图片描述

Java对接调用soap接口:

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

所以这里用postman模拟Java接口调用,请求方式POST:
(1)根据上面接口调试发现wsdl输入账号和密码后会重定向到一个地址,所以复制该地址至postman
在这里插入图片描述

(2)构建认证请求头

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

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

在这里插入图片描述

(3)将参数组装至body,方式为xml,这样就可以调通接口了
在这里插入图片描述
该方式对应复杂请求数据组装不友好,如需此方法调用对象组装成xml,可以考虑使用JAXB

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

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

引入axis-1.4的依赖

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

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

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

部分思路来源于:JAVA客户端调用SAP提供的接口(保姆级教程)

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LVS(Linux Virtual Server)是一种基于 Linux 系统的负载均衡集群技术,它主要用于将网络流量分发到多个服务器上,以提高系统的可靠性、可扩展性和性能。 LVS 集群一般包括四个组件:调度器(LVS 调度器)、前端服务器(负载均衡器)、后端服务器(真实服务器)和存储服务器(用于共享数据)。首先,调度器接收来自客户端的请求,然后根据配置的调度算法(如轮询、加权轮询、最小连接数等)将请求分发到多个前端服务器。前端服务器接收到请求后,通过相应的负载均衡算法将请求转发到后端的真实服务器上进行处理。在整个过程中,存储服务器用于存放共享的数据,以确保所有的真实服务器都能获取到相同的数据,并提供一致的服务。 LVS 集群的优点是能够提高网站的稳定性和可靠性,当某一台服务器出现故障时,调度器会自动将请求分发到其他可用的服务器上,从而保证服务的连续性。同时,LVS 集群还能够通过增加前端服务器和后端服务器的数量来提高系统的性能和吞吐量,以满足不断增长的用户需求。 在实际应用中,LVS 集群需要合理配置,包括选择合适的调度算法、调整每台服务器的权重、选择适当的硬件设备等。此外,还需要及时监控集群的运行状态,及时发现和解决故障,以确保整个系统的正常运行。 总的来说,LVS 负载均衡集群是一种强大而高效的集群技术,能够帮助企业提高系统的可靠性和性能,是现代互联网应用中不可或缺的重要组成部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值