WebService配置及使用,入参到大小写问题处理

最近在工作中要到的技术点分享。

1 webservice介绍

        webservice 即 web 服务,因互联网而产生,通过 webservice 这种 web 服务,我们可以实现互联网应用之间的资源共享,比如我们想知道 手机号码归属地,列车时刻表,天气预报,省市区邮政编码等信息,由于我们自己的数据库中并没有这些信息,那么我们可以调用第三方提供的 webservice服务,获取这些信息;

        webservice 是一种系统之间进行调用的技术,系统之间调用的技术有:httpClient、hessian、dubbo、webservice 等;WebService 是一种跨越编程语言,跨越操作系统,跨越终端的远程调用技术,比如一个系统是 Java 语言开发的,另一个系统是 PHP 语言开发的,他们之间要实现信息交互,则可以使用 webservice 进行数据交互;

        所以 webservice 实现了异构系统之间的通信,不管是采用什么语言编写的,不管部署在什么操作系统平台上,使用 webservice 都可以实现信息的交换;

2 webservice核心要素

2.1 SOAP

        SOAP 英文全称为:Simple Object Access Protocol,即简单对象访问协议,它是基于 xml 格式的消息交换协议;

        OAP 定义了信息交换的格式,它包含一个重要的信封 envelope,使用信封envelope 来包装要传递的信息,使用命名空间 namespace 来区分传递的信息;简单来说,在 WebService 中传递的信息就是一封信,SOAP 就是信的通用格式,它定义了一封信应该有信封,信封里装着信的内容;

        信封(envlope)的格式是固定的,而信的内容(要传递的数据)可以自己定义;SOAP 协议传输的数据采用 xml 格式进行封装,采用 http 协议进行传输,即soap=xml+http;

2.2 WSDL

        WSDL 英文全称为 Web Service Description Language,即 Web Service 描述语言;它使用 xml 对 Web Service 进行描述,比如提供服务的方法、参数、返回值、数据类型等信息进行描述;简单来说,wsdl 就是 webservice 服务的使用说明书;

3 webservice的使用场景

1、应用系统集成

多个应用系统集成在一起,则需要信息交换或通信,那么可以采用 webservice进行通信;

2、异构系统之间通信

异构系统,主要是指编程语言不同的系统;不同系统之间,特别是开发语言不同的系统之间,可以通过 webservice 进行信息交换;

3、软件复用

webservice 可以作为一个公共的服务,供客户端调用,避免软件重复开发工作;

服务端配置:

pom配置

<!--cxf支持 -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.5.6</version>
</dependency>

目录结构:

 config配置:

 service配置:

serviceImpl代码:

 然后就可以进行测试了

首先在页面访问,出现图示说明服务端已经开发好了 

注意点:config中配置的发布的接口名称

测试用例:postman

入参大小写问题处理:

使用在生成的get方法上使用@XMLElement注解

package com.sinosoft.tmnch.api.wx.golf.vo;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlElement;

public class SendTravelBizRequest {
    /**
     * 相关请求信息
     */
    @NotNull(message = "RequestRelated不能为空")
    @Valid
    private RequestRelated requestRelated;

    /**
     * 参考信息
     */
    @NotNull(message = "reference不能为空")
    @Valid
    private Reference reference;
    
    /**
     * 保单基本信息
     */
    @NotNull(message = "PolicyBasicInfo不能为空")
    @Valid
    private PolicyBasicInfo policyBasicInfo;
    
    /**
     * 保险人信息列表
     */
    @NotNull(message = "InsuredList不能为空")
    @Valid
    private InsuredList insuredList;

    @XmlElement(name = "RequestRelated")
    public RequestRelated getRequestRelated() {
        return requestRelated;
    }

    public void setRequestRelated(RequestRelated requestRelated) {
        this.requestRelated = requestRelated;
    }

    @XmlElement(name = "Reference")
    public Reference getReference() {
        return reference;
    }

    public void setReference(Reference reference) {
        this.reference = reference;
    }

    @XmlElement(name = "PolicyBasicInfo")
    public PolicyBasicInfo getPolicyBasicInfo() {
        return policyBasicInfo;
    }

    public void setPolicyBasicInfo(PolicyBasicInfo policyBasicInfo) {
        this.policyBasicInfo = policyBasicInfo;
    }

    @XmlElement(name = "InsuredList")
    public InsuredList getInsuredList() {
        return insuredList;
    }

    public void setInsuredList(InsuredList insuredList) {
        this.insuredList = insuredList;
    }
}

既然使用spring+webservice

就交给框架处理,就查看了,关于实体类生成xml的api,在实体类上加了注解;

加这个的原因就是,wsdl在拼接表单的时候,会将实体类中的get方法取出,并且降低一个参数小写。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值