天天看点

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

1 简介

webservice即web服务,它是跨语言、跨操作系统的远程调用技术。Apache CXF WebService插件包就是该技术的实现方式之一;整合到springboot项目中使用Apache提供的starter插件包。三种webservice规范:JAX-WS、JAXM、JAX-RS。

Soap协议

它是交换报文的xml协议
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

WSDL文件

它是soap的xml协议描述,让开发人员能看懂接口
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

UDDI架构

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

2 原生ws和rs规范用法

X.1 JAX-WS规范

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

服务端

<dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.2.4</version>
        </dependency>
           

对外服务接口

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

 对外服务接口实现

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

发布

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

添加ApacheCXF服务端日志拦截器,查看基于soap协议客户端请求服务端的请求参数和响应参数

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

访问wsdl说明书

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

客户端 

使用jdk接口代理方式模拟调用

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

添加ApacheCXF客户端日志拦截器,查看基于soap协议客户端请求服务端的请求参数和响应参数

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
JAX-WS底层原理 

 通过soap将客户端请求报文转化为xml格式,服务端接收后将xml转成本服务的对象格式;响应的流程反之。即服务与服务之间入为对象,出为xml。
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

X.2 JAX-RS规范

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

服务端

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

接口

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

//服务端实体类,用于接收参数

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

 实现

实现和wm的一样,拷过来即可

发布

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
客服端 

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

//客户端实体类,用于发送xml参数

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

服务端和客服端都必须加如下json转换包
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

服务端 

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

客服端

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

 服务端日志

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

 客户端成功接收数据

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

3 springboot整合Jax-ws和Jax-rs

上面的方式属于使用Netty/Tomcat作为web服务器实现跨平台/跨语言的接口调用,用的是原生的插件包apache cxf;下面就介绍使用Tomcat作为web服务器的调用方式,唯一区别是下面使用的插件包是Apache为springboot提供的starter。

X.1 Jax-ws

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

服务端

服务端和之前的写法一样,只是访问是默认必须加上services路径。
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

发布

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

 上面的发布类似于之前的下面这些发布,不过上面这个用于springoot项目

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

客户端 

客户端没怎么变化,只是改下访问地址。
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

X.2 Jax-rs

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

服务端

接口和实现类与上面的 ”3.2json格式” 差不多直接拷过来。

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

发布

将服务发布到endpoint 
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

客服端

Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs
Apache CXF WebService1 简介2 原生ws和rs规范用法3 springboot整合Jax-ws和Jax-rs

继续阅读