SpringBoot(18)CXF构建WebService服务

一、前言

Apache CXF是一个开源的Services框架,CXF帮助您利用Frontend编程 API 来构建和开发Services,像JAX-WS、JAX-RS。这些Services可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP或者CORBA,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者JBI,CXF大大简化了 Services 的创建,同时它可以天然地和Spring进行无缝集成。

二、常用注解介绍

  • @WebService:用于将Java类标记为实现Web Service或者将服务端点接口 (SEI) 标记为实现Web Service接口。
    其包含的属性有:
    1、serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service。缺省值为 Java 类的简单名称 + Service。(字符串)

    2、endpointInterface: 服务接口全路径, 指定做SEI(Service EndPoint Interface)服务端点接口

    3、name:此属性的值包含XML Web Service的名称。在默认情况下,该值是实现XML Web Service的类的名称,wsdl:portType 的名称。缺省值为 Java 类的简单名称 + Service。(字符串)

    4、portName: wsdl:portName。缺省值为 WebService.name+Port。

    5、targetNamespace:指定你想要的名称空间,认是使用接口实现类的包名的反缀

    6、wsdlLocation:指定用于定义 Web Service 的 WSDL 文档的 Web 地址。Web 地址可以是相对路径或绝对路径。(字符串)

    注意:实现类上可以不添加Webservice注解

  • @WebMethod : 注释表示作为一项 Web Service 操作的方法,将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。

    要点: 仅支持在使用 @WebService 注释来注释的类上使用 @WebMethod 注释

    1、operationName:指定与此方法相匹配的wsdl:operation 的名称。缺省值为 Java 方法的名称。(字符串)

    2、action:定义此操作的行为。对于 SOAP 绑定,此值将确定 SOAPAction 头的值。缺省值为 Java 方法的名称。(字符串)

    3、exclude:指定是否从 Web Service 中排除某一方法。缺省值为 false。(布尔值)

  • @WebParam:用于定制从单个参数至Web Service消息部件和XML元素的映射。

三、SpringBoot整合CXF实例

服务端

创建一个工程:cxf-service

  • 引入CXF的POM文件
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.2.5</version>
</dependency>
  • 创建实体,按JAX-WS规范,创建接口及其实现类
    UserDto.java
/**
 * @program: cxf-service
 * @description: 用户信息实体
 * @author: jason
 * @create: 2020-11-11 14:21
 **/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserDto {
   

    private String UserName;

    private String account;

    private String password;

    private Integer age;
}

UserService.java接口类

/**
 * @program: cxf-service
 * @description: 创建服务接口
 * @author: jason
 * @create: 2020-11-11 14:26
 **/
@WebService(targetNamespace = WsConst.NAMESPACE_URI ,name = "userPortType")
public interface UserService {
   
    /**
     * 根据名称获取用户信息
     * @author 作者:jason
     */
    @WebMethod(operationName="getAuthorByName")
    UserDto getUserDto(@WebParam(name = "userName") String userName);

    /**
     * 获取用户列表信息
     
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值