首页 > 其他分享 >SpringBoot集成webService

SpringBoot集成webService

时间:2023-01-31 13:17:04浏览次数:42  
标签:集成 SpringBoot example cxf org import com public webService

我这里用的cxf框架来搭建webService服务
我的SpringBoot版本为2.7.5
查看项目springBoot版本的方法:
1.

  1. 写测试类,打印springBoot版本
    @Test
    void version(){
    System.out.println(SpringBootVersion.getVersion());
    }
    

服务端

1 导入cxf依赖

<!-- cxf -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-features-logging</artifactId>
    <version>3.5.5</version>
</dependency>

我直接选的3.5.5版本,最后可以成功运行。

2 编写接口类

    package com.example.service;
    import javax.jws.WebService;

    /**
     * @author A
     * @date 2023-01-31 11:39:31
     * @description
     */
    @WebService(name = "myService",//向外暴露的服务名称
                targetNamespace = "http://service.example.com"//命名空间,一般是接口的包名倒序
    )
    public interface MyWebService {
        public String testMyService();
    }

3 接口实现类

    package com.example.service.impl;

    import com.example.service.MyWebService;
    import org.springframework.stereotype.Component;

    import javax.jws.WebService;

    /**
     * @author A
     * @date 2023-01-31 12:11:21
     * @description
     */
    @WebService(name = "myService",//向外暴露的服务名称
            targetNamespace = "http://service.example.com",//与接口中的命名空间一致
            endpointInterface = "com.example.service.MyWebService"//接口全限定名,注意不是实现类
    )
    @Component
    public class MyWebServiceImpl implements MyWebService {
        @Override
        public String testMyService() {
            return "我的第一个webSerivce服务";
        }
    }

4 cxf配置文件

package com.example.config;

import com.example.service.impl.MyWebServiceImpl;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.xml.ws.Endpoint;

@Configuration
public class CxfConfig {
    //默认servlet路径/*,可自定义
    @Bean
    public ServletRegistrationBean disServlet() {//此bean名不可为dispatcherServlet,否则启动时会异常
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new CXFServlet(), "/webService/*");//服务访问地址为ip:端口/webService
        return servletRegistrationBean;
    }
    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return new SpringBus();
    }

    @Bean
    public Endpoint endpoint1(){
        EndpointImpl endpoint = new EndpointImpl(springBus(), new MyWebServiceImpl());
        endpoint.publish("/myService");//这个webService的访问地址
        return endpoint;
    }
}

5 启动springboot项目

浏览器访问地址:localhost:端口/webService,会列出所有服务

看到这个说明服务发布成功。

测试发布的服务

我用的是SoapUI工具进行webService服务测试


点击运行后的返回值是正确的

标签:集成,SpringBoot,example,cxf,org,import,com,public,webService
From: https://www.cnblogs.com/ccx-lly/p/17078425.html

相关文章