springboot中简单创建webservice服务

简介: 不添加配置类也可以在springboot的启动类了里面发布服务,但是那样的话就不是ioc托管的了,在服务里面就不能注入其他IOC容器里面的对象

添加依赖


   

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>

添加配置类


不添加配置类也可以在springboot的启动类了里面发布服务,但是那样的话就不是ioc托管的了,在服务里面就不能注入其他IOC容器里面的对象


ip 用本机IP,端口不能跟当前项目springboot配置文件里面的端口一样


package com.gt.SPYZT.configuration;
import com.gt.SPYZT.webservice.PlaceService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import javax.xml.ws.Endpoint;
/**
 * @author vhukze
 * @date 2022/4/12 14:57
 */
@Configuration
public class WebServiceConfig {
    @Resource
    private PlaceService placeService;
    @Value("${webs.ip-port}")
    private String webs;
    @Bean
    public Endpoint endpoint() {
        String url = "http://" + webs + "/PlaceService";
        System.out.println("服务发布//");
        return Endpoint.publish(url, placeService);
    }
}


创建服务接口


package com.gt.SPYZT.webservice;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface PlaceService {
    @WebMethod
    String queryPlace(@WebParam(targetNamespace = "http://impl.webservice.SPYZT.gt.com/", name = "token") String token,
                      @WebParam(targetNamespace = "http://impl.webservice.SPYZT.gt.com/", name = "name") String name);
}

接口实现类

package com.gt.SPYZT.webservice.impl;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.gt.SPYZT.entity.po.slave1.TbSpyztServiceinfo;
import com.gt.SPYZT.http.PlaceHttp;
import com.gt.SPYZT.mapper.slave1.TbSpyztServiceinfoMapper;
import com.gt.SPYZT.service.TokenService;
import com.gt.SPYZT.webservice.PlaceService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @author vhukze
 * @date 2022/4/12 13:53
 */
@WebService
@Component
public class PlaceServiceImpl implements PlaceService {
    @Resource
    private TbSpyztServiceinfoMapper tbSpyztServiceinfoMapper;
    @Value("${place.name}")
    private String placeName;
    @Value("${place.query-url}")
    private String queryUrl;
    @Override
    @WebMethod
    public String queryPlace(@WebParam(targetNamespace = "http://impl.webservice.SPYZT.gt.com/", name = "token") String token,
                             @WebParam(targetNamespace = "http://impl.webservice.SPYZT.gt.com/", name = "name") String name) {
        return null;
    }
}


命名空间一般就是当前类所在包路径倒过来,一开始没有写命名空间,用postman测试一直拿不到参数值,加上命名空间就可以了


postman测试

请求体


<?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>
        <queryPlace xmlns="http://impl.webservice.SPYZT.gt.com/">
            <token>meZ0fzvx2uB6BdeDQ7yizmufRZNONer9</token>
            <name></name>
        </queryPlace>
    </soap:Body>
</soap:Envelope>

请求头



示例

相关文章
|
2月前
|
JavaScript Java 关系型数据库
基于springboot的美食城服务管理系统
本系统基于Spring Boot、Java、Vue和MySQL技术,构建集消费者服务、商家管理与后台监管于一体的美食城综合管理平台,提升运营效率与用户体验。
|
5月前
|
Prometheus 监控 Cloud Native
Docker 部署 Prometheus 和 Grafana 监控 Spring Boot 服务
Docker 部署 Prometheus 和 Grafana 监控 Spring Boot 服务实现步骤
534 0
|
9月前
|
人工智能 自然语言处理 Java
对话即服务:Spring Boot整合MCP让你的CRUD系统秒变AI助手
本文介绍了如何通过Model Context Protocol (MCP) 协议将传统Spring Boot服务改造为支持AI交互的智能系统。MCP作为“万能适配器”,让AI以统一方式与多种服务和数据源交互,降低开发复杂度。文章以图书管理服务为例,详细说明了引入依赖、配置MCP服务器、改造服务方法(注解方式或函数Bean方式)及接口测试的全流程。最终实现用户通过自然语言查询数据库的功能,展示了MCP在简化AI集成、提升系统易用性方面的价值。未来,“对话即服务”有望成为主流开发范式。
6225 7
|
11月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的家政服务管理平台设计与实现(计算机毕设项目实战+源码+文档)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
11月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
383 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
缓存 前端开发 Java
springboot 的单体服务 字典参数转译
本文介绍了如何在Spring Boot项目中使用缓存来管理字典参数,并确保前后端数据一致性。首先,通过`@EnableCaching`启用缓存功能,接着创建一个自定义的字典缓存类`DicCache`。然后,通过配置类将`DicCache`添加到`cacheManager`中。此外,对字典服务进行改造,使用`@CachePut`和`@CacheEvict`注解保证数据一致性。最后,实现自定义注解`@DicSerializer`和序列化处理类`DictSerializerHandel`,用于在序列化过程中自动转换字典值。通过这种方式,可最小化代码改动并提高系统性能。
311 6
springboot 的单体服务 字典参数转译
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
957 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
自然语言处理 Java Maven
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
这篇博客介绍了如何使用Spring Boot整合TransportClient搭建Elasticsearch服务,包括项目创建、Maven依赖、业务代码和测试示例。
637 0
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务