保姆级webservice_cxf_boot入门

什么是webservice?

webservice,是一个平台独立的,低耦合的,自包含的,基于可编程的web的应用程序,可使用开放的xml(标准通用标记语言下的一个子集)标准来描述,发布,发现,协调和配置这些应用程序,用于来开发分布式的互操作的应用程序,webservice技术,能使得运行在不同机器上的不同应用无需借助附加的,专门的第三方软件或者硬件,就可以相互交换数据或者集成,一句web service规范实施的应用之间,无论他们所使用的语言,平台或内部协议是什么,都可以相互交换数据,web service是自描述,自包含的可以用网络模块,可以执行具体的业务功能,web service也很容易部署,因为他们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集xml,http,webservice减少了应用接口的花费,web service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制

Apache CXF简介

Apache CXF 是一个开源的service框架,它实现了与JCP与web service中一些重要标准,CXF简化了构造,集成,面向服务架构(SOA)业务组件与技术的灵活复用。在CXF中,service使用WSDL标准定义并能够使用各种不同的消息格式(或binding)和网络协议(transports)包括SOAP,XML(通过HTTP或JMS)进行访问

创建springboot项目

引入jar(以下是本人引入的jar包,我的springboot的版本选择的是<2.5.0>)

 <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-transports-http -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.2.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

项目结构

springboot项目并导包完成后在启动类同包下创建两个包,
WebxxxApplication为启动类就不用解释了吧
一个是service包(包内容: 客户端对外暴露服务)
一个是config包(用于配置spring整合cxf,和cxf客户端的自启动)

在这里插入图片描述

创建服务端对外暴露接口

在service包中创建service接口,接口上需要添加**@webservice注解**
接口内可以自定义一些想要对外暴露的方法供给给客户端调用
@WebParam表示方法的参数
如图:
在这里插入图片描述

接下来是接口的实现类:
几口接口及实现类创建位置如上图


接口实现类:
接口的实现类同样需要添加**@webserivce**注解,并且需要注解中需要添加一个参数endpointInterface:参数内容指向 接口的地址
在这里插入图片描述

spring整合cxf

个人理解spring整合:
什么是spring整合,就是创建出来的对象的交给spring,对象存放在spring中的单例池中,spring负责对象与对象之间的管理(说了半天就是ioc的概念:把创建对象的权力交给spring框架管理)

正题开始
在config包下创建CXFConfig类
在这里插入图片描述

类中内容
在这里插入图片描述
注意注意!!!
写到这段代码可能会报错,原因是 new ServletRegistrationBean()的时候需要传一个servlet或子类型的对象,而new CXFServlet() 是servlet的子类的子类的子类的,子类, 按道理可以穿,但是idea不识别, 这是可以在pom包中添加一个servlet的包即可解决

  @Bean
    public ServletRegistrationBean servletRegistrationBean(){
        return new ServletRegistrationBean(new CXFServlet(),"/webservice/*");
    }

运行测试:
在这里插入图片描述

可以使用第三方测试软件测试webservice:
我这里用的是 :webservice studio

路径提示:
localhost:启动服务的端口号/这里是在config中定义的webservice/要访问的详细某个服务?wsdl
在这里插入图片描述

哦也成功
在这里插入图片描述

编写测试类,终于快完啦~

测试类包结构:
在这里插入图片描述

DemoService接口:模拟客户端接口
内容如下
targetNamespace中的内容是你接口中的包路径倒过来写
在这里插入图片描述
测试类详情
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210525204551563.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTI5MjkzOQ==,size成功!

在这里插入图片描述

源码链接奉上:
https://gitee.com/yue_25699_admin/web_service.git

保姆级webservice入门到此结束,各位告辞

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值