springboot中使用webservice服务

这篇具有很好参考价值的文章主要介绍了springboot中使用webservice服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

和第三方对接,写了个http接口,然后告诉我需要WebService接口;一猜就是老掉牙的项目,还搞这么麻烦的东西,很久很久以前写过,不过已经忘得差不多了,重新熟悉一下,记录一下吧!

一、添加依赖

        <!--webService相关依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.2.7</version>
        </dependency>

二、编写接口和接口实现类

接口

package com.zhh.demo.webservice.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 * @Description: WebService接口示例
 * @Author: zhaoheng
 * @CreateTime: 2022-11-10  16:29
 */

@WebService(name = "UserService", // 暴露服务名称
        targetNamespace = "http://demo.zhh.com" // 命名空间,随便写,但是客户端需要和这里一致
)
public interface UserService {


    /**
     * 注解@WebParam 无参数声名的写法
     * @param name  姓名
     * @param sex   性别
     * @return
     */
    @WebMethod
    String userList(@WebParam(targetNamespace = "http://demo.zhh.com") String name,
                    @WebParam(targetNamespace = "http://demo.zhh.com")  String sex);

    /**
     *  注解@WebParam 有参数声名的写法
     * @param name  姓名
     * @param sex   性别
     * @return
     */
    @WebMethod
    String userList2(@WebParam(targetNamespace = "http://demo.zhh.com", name = "name") String name,
                     @WebParam(targetNamespace = "http://demo.zhh.com", name = "sex") String sex);

}

实现类

package com.zhh.demo.webservice.service.impl;

import com.zhh.demo.webservice.service.UserService;
import lombok.extern.slf4j.Slf4j;

import javax.jws.WebService;

/**
 * @Description: iam系统状态维护接口
 * @Author: zhaoheng
 * @CreateTime: 2022-11-10  16:39
 */
@WebService(serviceName = "UserService", // 与接口的名称一致
        targetNamespace = "http://demo.zhh.com", // 与接口中的命名空间一致,一般是接口的包名倒
        endpointInterface = "com.zhh.demo.webservice.service.UserService" // 接口地址
)
@Slf4j
public class UserServiceImpl implements UserService {

    @Override
    public String userList(String name, String sex) {
        log.info("userList-入参:{},{}",name,sex);
        return "OK";
    }

    @Override
    public String userList2(String name, String sex) {
        log.info("userList2-入参:{},{}",name,sex);
        return "OK";
    }

}

三、配置类

package com.zhh.demo.webservice.config;


import com.zhh.demo.webservice.service.UserService;
import com.zhh.demo.webservice.service.impl.UserServiceImpl;
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;

/**
 * @Description: WebService配置
 * @Author: zhaoheng
 * @CreateTime: 2022-11-10  16:29
 */
@Configuration
public class WebServiceConfig {

    @Bean
    public ServletRegistrationBean cxfServlet() {
        // url前缀,localhost:8080/demo/ws/user?wsdl
        return new ServletRegistrationBean(new CXFServlet(), "/ws/*");
    }

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

    /**
     * 业务类注入到容器
     */
    @Bean
    public UserService iamStateService() {
        return new UserServiceImpl();
    }

    /**
     * 注册接口到WebService服务
     * @return
     */
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), iamStateService());
        // url地址,localhost:8080/demo/ws/user?wsdl
        endpoint.publish("/user");
        return endpoint;
    }
}

四、结果展示

4.1 浏览器访问

 http://localhost:8080/demo/ws/user?wsdl

springboot中使用webservice服务

 4.2 postMan调用

设置Header   Content-Type=text/xml

请求体Body xml格式

4.2.1 调用 userList 接口

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <userList xmlns="http://demo.zhh.com"> <!-- 接口名称、namespace和后端对应 -->
            <arg0>王婷婷</arg0> <!-- 第1个参数 -->
            <arg1>女</arg1>     <!-- 第2个参数 -->
        </userList>
    </soap:Body>
</soap:Envelope>

springboot中使用webservice服务

 请求成功。

 4.2.2 调用 userList2 接口

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <userList2 xmlns="http://demo.zhh.com"> <!-- 接口名称、namespace和后端对应 -->
        <name>李白</name> <!-- 和后端接口参数名称对应 -->
           <sex>男</sex>
    </userList2>
  </soap:Body>
</soap:Envelope>

springboot中使用webservice服务 

 请求成功。

可以看出,两个接口,一个通过注解声名了接口参数另一个没声名,客户端请求的时候也是不一样的。如果声名了参数,客户端使用对应的参数名称标签就行,否则就需要用arg0、arg1、arg3标签分别表示第一二三个参数。

springboot中使用webservice服务

 文章来源地址https://www.toymoban.com/news/detail-507707.html

到了这里,关于springboot中使用webservice服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信第三方平台对接小程序发版

    微信第三方平台是商家把公众号或小程序代交给服务商来管理, 当商家把小程序授权给第三方平台后,同时授权小程序开发与数据分析,小程序后台就无法发版 ,必须开发人员调小程序的api才能实现发版;如不需要调第三方平台接口的方式发布,取消 小程序开发与数据分析

    2024年02月16日
    浏览(75)
  • 海康威视iSC 平台第三方对接门禁权限分享

    一、 场景描述 iSC 平台的门禁产品及功能在项目应用广泛,第三方对接门禁权限功能的需求也越来也 多,由于门禁权限下发需要涉及到往设备上下发,第三方接口调用一旦不正确,不合理的接 口调用很容易给我们平台造成额外的性能消耗,甚至导致我们平台挂掉,特此梳理

    2024年02月02日
    浏览(361)
  • java对接第三方接口的三种方式

    在日常工作中,经常需要跟第三方系统对接,我们做为客户端,调用他们的接口进行业务处理,常用的几种调用方式有: 1.原生的Java.net.HttpURLConnection(jdk); 2.再次封装的HttpClient、CloseableHttpClient(Apache); 3.Spring提供的RestTemplate; 当然还有其他工具类进行封装的接口,比

    2024年04月28日
    浏览(64)
  • 3PL第三方物流如何对接TSC EDI?

    TractorSupply(以下简称为TSC)是一家总部位于美国的零售公司,主要专注于农业、家庭和宠物用品。在美国拥有数百家门店,广泛分布在城市、城镇和农村地区,这使得他们能够满足各种地理位置和社区的需求。为了确保其供应链以及物流运营的高效性,TSC选择与3PL(第三方物

    2024年02月07日
    浏览(45)
  • Springboot使用JustAuth完成各种第三方登陆

    目录 使用Gitee进行登陆 1.Gitee准备工作 2. 编码 3.建立数据表          4. 自由发挥 示例: 进入gitee,在设置中选择此选项   依赖   配置文件  接口编写 如果有spring security的话,还要打开这两个接口的访问权限为所有人都可以访问。 没有的可忽略 启动测试 访问: 同意授权

    2024年02月13日
    浏览(41)
  • 飞鱼CRM接入第三方系统 飞鱼API对接详细教程

    场景描述 在白码低代码开发平台中,是支持外部crm系统的线索通过接口流入到白码系统里面,换而言之,只要外部的系统有线索api接口,白码系统可以接收线索并在白码系统上进行后续操作。本文以飞鱼crm系统为例,讲解如何接收飞鱼crm系统传过来的线索 前期准备 准备两个

    2024年01月21日
    浏览(47)
  • 自营外卖配送平台的商家如何对接第三方美饿的订单

    自营外卖跑腿平台对接第三方美饿的好处 单说美团饿了么自身的流量优势,很多商家不能忽视,但是美团饿了么的高额配送成本与抽成,同样也不能忽视。很多商家希望选择自配送或者其他更划算的配送方式来节省成本。这时,区域性的自建外卖平台与美团、饿了么实现订单

    2024年02月13日
    浏览(41)
  • 【业务功能篇94】微服务-springcloud-springboot-认证服务-注册功能-第三方短信验证API

      结合我们前面介绍的商城的架构我们需要单独的搭建一个认证服务。   首先创建一个SpringBoot项目,然后添加对应的依赖   我们需要把认证服务注册到Nacos中,添加对应的依赖,然后完成对应的配置 放开Nacos注册中心 然后启动测试   然后我们整理登录和注册的相关

    2024年02月09日
    浏览(57)
  • PHP聚合支付网站源码/对接十多个支付接口 第三方/第四方支付/系统源码

    PHP聚合支付网站源码/对接十多个支付接口 第三方/第四方支付/系统源码 内附数十个支付接口代码文件。 下载地址:https://bbs.csdn.net/topics/616764485  

    2024年02月11日
    浏览(52)
  • 对接第三方接口鉴权(Spring Boot+Aop+注解实现Api接口签名验证)

    一个web系统,从接口的使用范围也可以分为对内和对外两种,对内的接口主要限于一些我们内部系统的调用,多是通过内网进行调用,往往不用考虑太复杂的鉴权操作。但是,对于对外的接口,我们就不得不重视这个问题,外部接口没有做鉴权的操作就直接发布到互联网,而

    2024年04月29日
    浏览(93)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包