当前位置: 首页 > article >正文

SpringBoot集成Web Service

1)添加依赖

 <dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.3.4</version>
    <exclusions>
        <exclusion>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-ri</artifactId>
    <version>2.3.3</version>
    <type>pom</type>
</dependency>

2)添加服务接口

public interface UserService {
    UserDTO getById(@WebParam(name="id") Integer id);
}

3)添加服务实现类

@Service
@WebService
        (
        targetNamespace = "http://www.xjs1919.com", 
        serviceName = "userService"
)
public class UserServiceImpl implements UserService {
    @Override
    public UserDTO getById(Integer id) {
        return new UserDTO(id, "hello_"+id);
    }
}

4)添加配置类

@Configuration
@Slf4j
public class WebServiceConfig {
 
    @Autowired
    private UserService userService;

    /**
     * 注入Servlet,注意beanName不能为dispatcherServlet
     */
    @Bean
    public ServletRegistrationBean cxfServlet() {
        return new ServletRegistrationBean(new CXFServlet(), "/webservice/*");
    }

    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return new SpringBus();
    }

    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), userService);
        endpoint.publish("/userService");
        return endpoint;
    }

}

5)启动应用,查看服务列表

浏览器访问:http://localhost:8888/webservice
在这里插入图片描述
点击WSDL后面的连接可以查看WSDL地址和内容:
在这里插入图片描述

6)测试

@Test
public void testGetById(){
    JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    Client client = dcf.createClient("http://localhost:8888/webservice/userService?wsdl");
    final ObjectMapper mapper = new ObjectMapper();
    try {
        Object[] objects = client.invoke("getById", 123);
        System.out.println(mapper.writeValueAsString(objects[0]));
    } catch (Exception e) {
        e.printStackTrace();;
    }
}

完整源码下载:https://github.com/xjs1919/enumdemo/tree/master/springboot-webservice


http://www.kler.cn/a/272727.html

相关文章:

  • springboot基于微信小程序的传统美食文化宣传平台小程序
  • opencv图像基础学习
  • js基础---var与let的区别以及const的使用
  • 语义检索效果差?深度学习rerank VS 统计rerank选哪个
  • 01.17周五F34-Day58打卡
  • 前端web
  • java通过Excel批量上传下载数据
  • 挑战杯 机器视觉目标检测 - opencv 深度学习
  • SpringBoot3整合Elasticsearch8.x之全面保姆级教程
  • 是否还在疑惑数据存储的大小端和所谓的整形提升呢,那就来看看吧
  • 【JVM】(内存区域划分 为什么要划分 具体如何分 类加载机制 类加载基本流程 双亲委派模型 类加载器 垃圾回收机制(GC))
  • vue xlsx读取文件时,日期转换为了天数
  • 【QT入门】VS2019和QT Creator如何添加第三方模块
  • C#,数值计算,矩阵相乘的斯特拉森(Strassen’s Matrix Multiplication)分治算法与源代码
  • Vue2 父子组件某一属性的双向绑定
  • 【软件测试知识】什么是持续集成?
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:RichText)
  • 社区居民医疗健康系统 微信小程序
  • LabVIEW提升舱救援通讯监测系统
  • 香农公式的理解
  • 【Nuxt3】plugins目录介绍和nuxt3插件的用法
  • HackTheBox WifineticTwo
  • 速盾cdn:cdn节点缓存内容不一致怎么办?
  • leetcode 3080
  • 奇数乘积(C语言)
  • Python数据分析-Matplotlib1