SpringBoot WebService服务端&客户端使用案例教程

 更新时间:2023年10月20日 10:21:28   作者:知识浅谈  
这篇文章主要介绍了SpringBoot WebService服务端&客户端使用案例教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

服务端:

依赖

<!--        webservice相关依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.2.0</version>
        </dependency>

服务接口

package com.example.demo.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
 * @author: Yinlei
 * Package: com.example.demo.service
 * @date: 2023-10-18 8:40
 * @Description: webservice测试
 * @version: 1.0
 */
@WebService(name = "HelloWebService",
targetNamespace = "http://helloWebService.service.demo.example.com")
public interface HelloWebService {
    @WebMethod
    @WebResult(name = "resultName")
    String get(@WebParam(name = "name") String name);
}

服务接口实现类

package com.example.demo.service.Impl;
import com.example.demo.service.HelloWebService;
import org.springframework.stereotype.Service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
 * @author: Yinlei
 * Package: com.example.demo.service.Impl
 * @date: 2023-10-18 8:46
 * @Description:
 * @version: 1.0
 */
@Service
@WebService(name = "HelloWebService",
        targetNamespace = "http://helloWebService.service.demo.example.com", //命名空间,一般是对应的路径反过来
        endpointInterface = "com.example.demo.service.HelloWebService")  //实现接口的地址
public class HelloWebServiceImpl implements HelloWebService {
    @Override
    public String get( String name) {
        return name;
    }
}

cxf配置类

package com.example.demo.config;
import com.example.demo.service.HelloWebService;
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.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.xml.ws.Endpoint;
/**
 * @author: Yinlei
 * Package: com.example.demo.config
 * @date: 2023-10-18 10:09
 * @Description: Cxf配置类
 * @version: 1.0
 */
@Configuration
public class CxfConfig {
    @Autowired
    private HelloWebService helloWebService;
    @Bean
    public ServletRegistrationBean disServlet(){
        return new ServletRegistrationBean(new CXFServlet(),"/webService/*"); //webservice下的请求将有CXFServlet处理
    }
    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus(){
        return  new SpringBus();
    }
    @Bean
    public Endpoint endpoint(){
        EndpointImpl endpoint = new EndpointImpl(springBus(), helloWebService);
        endpoint.publish("/helloWebservice");
        return endpoint;
    }
}

客户端

@GetMapping("/get1")
public String get1() throws MalformedURLException {
    //创建WSDL文件的URL,这个参数为暴露webervice的网址
    URL wsdlLocation = new URL("http://localhost:9000/webService/helloWebservice?wsdl");
    //创建服务名称:第一个参数为命名空间地址,第二个参数 为本地部分的命名 HelloWebServiceImplService  这个是对应的实现类名加上Service
    QName serviceName = new QName("http://helloWebService.service.demo.example.com", "HelloWebServiceImplService");
    Service service = Service.create(wsdlLocation, serviceName);
    //获取服务实现类  参数为对应的服务接口.class
    HelloWebService port = service.getPort(HelloWebService.class);
    //调用方法
    String asd = port.get("asd");
    return asd;
}

到此这篇关于SpringBoot WebService服务端&amp;客户端使用教程的文章就介绍到这了,更多相关SpringBoot WebService服务端内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaMail邮件发送机制详解

    JavaMail邮件发送机制详解

    这篇文章主要介绍了JavaMail邮件发送机制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 基于指针pointers和引用references的区别分析

    基于指针pointers和引用references的区别分析

    本篇文章介绍了,基于指针pointers和引用references的区别分析。需要的朋友参考下
    2013-05-05
  • Java如果在try里面执行return还会不会执行finally

    Java如果在try里面执行return还会不会执行finally

    这篇文章主要介绍了Java如果在try里面执行return,那么还会不会执行finally,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • SpringBoot采用AJAX实现异步发布帖子详解

    SpringBoot采用AJAX实现异步发布帖子详解

    Ajax是一种web应用技术,可以借助客户端脚本(javascript)与服务端应用进行异步通讯,获取服务端数据以后,可以进行局部刷新,进而提高数据的响应和渲染速度。所有的Ajax请求都会基于DOM(HTML元素)事件,通过XHR(XMLHttpRequest)对象实现与服务端异步通讯局部更新
    2022-08-08
  • Spring Security动态权限的实现方法详解

    Spring Security动态权限的实现方法详解

    这篇文章主要和小伙伴们简单介绍下 Spring Security 中的动态权限方案,以便于小伙伴们更好的理解 TienChin 项目中的权限方案,感兴趣的可以了解一下
    2022-06-06
  • SpringBoot2种单元测试方法解析

    SpringBoot2种单元测试方法解析

    这篇文章主要介绍了SpringBoot2种单元测试方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • spring-boot实现增加自定义filter(新)

    spring-boot实现增加自定义filter(新)

    本篇文章主要介绍了spring-boot实现增加自定义filter(新),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • idea下载svn的项目并且运行操作

    idea下载svn的项目并且运行操作

    这篇文章主要介绍了idea下载svn的项目并且运行操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Spring Boot学习入门之统一异常处理详解

    Spring Boot学习入门之统一异常处理详解

    我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。下面这篇文章主要给大家介绍了关于Spring Boot学习入门之统一异常处理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-09-09
  • javaweb Servlet开发总结(一)

    javaweb Servlet开发总结(一)

    Servlet是sun公司提供的一门用于开发动态web资源的技术。这篇文章主要介绍了javaweb Servlet开发的第一篇,感兴趣的小伙伴们可以参考一下
    2016-05-05

最新评论