springboot webservice接口一个配置文件配置两个接口路径

需求是我们的Java项目中需要和移动端对接接口 ,同时也需要和终端设备对接接口所以为了区分做了两个接口路径:
http://localhost:994/pbh/api app接口路径
http://localhost:994/pbh/terminal 终端接口路径

在配置文件中配置两套 Endpoint

package com.qckj.health.module.webService.config;import com.qckj.health.module.webService.app.IPbhAppService;
import com.qckj.health.module.webService.app.PbhAppServiceImpl;
import com.qckj.health.module.webService.terminal.IPbhTerminalService;
import com.qckj.health.module.webService.terminal.IPbhTerminalServiceImpl;
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 {@Beanpublic ServletRegistrationBean creatDispatcherServlet() {return new ServletRegistrationBean(new CXFServlet(), "/pbh/*");}@Bean(name = Bus.DEFAULT_BUS_ID)public SpringBus springBus() {return new SpringBus();}@Beanpublic IPbhAppService demoService() {return new PbhAppServiceImpl();}@Beanpublic IPbhTerminalService terminalService() {return new IPbhTerminalServiceImpl();}@Beanpublic Endpoint endpoint() {EndpointImpl endpoint = new EndpointImpl(springBus(), demoService());endpoint.publish("/api");return endpoint;}@Beanpublic Endpoint endpoint1() {EndpointImpl endpoint = new EndpointImpl(springBus(), terminalService());endpoint.publish("/terminal");return endpoint;}}

IPbhTerminalService 接口

package com.qckj.health.module.webService.terminal;import javax.jws.WebParam;
import javax.jws.WebService;@WebService(name = "TerminalService", // 暴露服务名称targetNamespace = "http://app.webService.module.health.qckj.com"// 命名空间,一般是接口的包名倒序
)public interface IPbhTerminalService {public String getDistListByDictType(@WebParam(name = "in0") String jsonStr);public String uploadTj_hebeilangfang(@WebParam(name = "in0") String jsonStr);}

IPbhTerminalService 接口实现

package com.qckj.health.module.webService.terminal;@WebService(serviceName = "TerminalService", // 与接口中指定的name一致targetNamespace = "http://terminal.webService.module.health.qckj.com", // 与接口中的命名空间一致,一般是接口的包名倒endpointInterface = "com.qckj.health.module.webService.terminal.IPbhTerminalService"// 接口地址
)
@Slf4j
public class IPbhTerminalServiceImpl implements IPbhTerminalService {@Autowiredprivate UserService userService;@Autowiredprivate QcTerminalUploadService qcTerminalUploadService;@Autowiredprivate PhysicalUploadService physicalUploadService;@Overridepublic String getDistListByDictType(String jsonStr) {Map<String, Object> map = (Map<String, Object>) GsonUtil.fromJson(jsonStr);return userService.getDistListByDictType(map);}
}

DemoService 接口

package com.qckj.health.module.webService.app;import javax.jws.WebParam;
import javax.jws.WebService;@WebService(name = "DemoService", // 暴露服务名称targetNamespace = "http://app.webService.module.health.qckj.com"// 命名空间,一般是接口的包名倒序
)public interface IPbhAppService {public String checkBasicInfo(@WebParam(name = "in0") String idcard);public String uploadData(@WebParam(name = "in0") String type, @WebParam(name = "in1") String jsonStr1, @WebParam(name = "in2") String jsonStr2, @WebParam(name = "in3") String reservedPara1, @WebParam(name = "in4") String reservedPara2) throws Exception;public String uploadManageData(@WebParam(name = "in0") String type, @WebParam(name = "in1") String jsonStr1, @WebParam(name = "in2") String reservedPara1, @WebParam(name = "in3") String reservedPara2) throws Exception;public String uploadBasicInfo(@WebParam(name = "in0") String jsonStr1, @WebParam(name = "in1") String jsonStr2, @WebParam(name = "in2") String jsonStr3, @WebParam(name = "in3") String jsonStr4, @WebParam(name = "in4") String reservedPara1, @WebParam(name = "in5") String reservedPara2) throws Exception;}

DemoService 接口实现

package com.qckj.health.module.webService.app;@WebService(serviceName = "DemoService", // 与接口中指定的name一致targetNamespace = "http://app.webService.module.health.qckj.com", // 与接口中的命名空间一致,一般是接口的包名倒endpointInterface = "com.qckj.health.module.webService.app.IPbhAppService"// 接口地址
)public class PbhAppServiceImpl implements IPbhAppService {
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一题——Python实现PAT甲级1029 Median(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的方法 代码功能和结构点评 时间复杂度分析 空间复杂度分析 优化建议 我要更强…

深度学习环境安装教程-anaconda-python-pytorch

首先是anaconda的安装&#xff0c;可以从下面地址下载安装包 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 尽量选择最新的日期的anaconda进行安装&#xff0c;我这里是windows电脑&#xff0c;因此选择了windos-x86_64.exe&#xf…

Git相关命令介绍

Git是一个功能强大的版本控制系统&#xff0c;它提供了一系列的命令来帮助开发者进行日常的版本控制操作。以下是一些常用的Git命令及其简要介绍&#xff1a; 初始化和配置 git init: 初始化一个新的Git仓库。git config: 配置Git的设置&#xff0c;如用户名、邮箱等。 文件…

如何在anaconda的环境下安装langchain

1、安装anaconda&#xff1b; 2、在终端上&#xff0c;输入&#xff1a; conda install langchain -c conda-forge Proceed ([y]/n)? y 输入&#xff1a;Y 3、安装完成后&#xff0c;输入&#xff1a; python -c "import langchain; print(langchain.__version__)&…

Redisson集成SpringBoot

前言&#xff1a;Redisson集成SpringBoot主要有两种方式&#xff0c;一个是使用redisson-spring-boot-starter依赖&#xff08;优先推荐&#xff09;&#xff0c;毕竟springboot主打的就是约定大于配置&#xff0c;这个依赖就是为springboot准备的。 再一种方式就是引入rediss…

JVM学习-javap解析Class文件

解析字节码的作用 通过反编译生成字节码文件&#xff0c;可以深入了解Java工作机制&#xff0c;但自己分析类文件结构太麻烦&#xff0c;除了第三方的jclasslib工具外&#xff0c;官方提供了javapjavap是jdk自带的反解析工具&#xff0c;它的作用是根据class字节码文件&#x…

JVM(9):虚拟机性能分析和故障解决工具之jmap工具

1 jmap(Memory Map for Java)作用 一个多功能的命令&#xff0c;它可以生成 java 程序的 dump 文件&#xff0c; 也可以查看堆内对象信息、查看 ClassLoader 的信息以及 finalizer 队列 2 命令格式 jmap [options] 参数解释&#xff1a; 第一个参数&#xff1a;options no…

一个投稿好方法让你的文章早日发表

作为一名单位信息宣传员,我初入此行时,满腔热情,怀揣着传播单位价值、展示团队风采的理想,一头扎进了稿件撰写的海洋。我的目标很简单,就是通过文字的力量,让外界听到我们的声音,感受到我们的活力。然而,理想很丰满,现实却给我上了生动的一课。 起初,我遵循传统路径,选择了一家…

QT安装和配置[安装注意点][QT找不到python27.dll][缩小空间]

安装注意点 本文摘录于&#xff1a;https://blog.csdn.net/Python_0011/article/details/131699443只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 双击"qt-online-installer-windows-x64-4.8.0.exe"文件后输入账号选择如下控…

云原生架构内涵_1.云原生架构定义

1.云原生架构 从技术的角度&#xff0c;云原生架构是基于云原生技术的一组架构原则和设计模式的集合&#xff0c;旨在将云应用中的非业务代码部分进行最大化的剥离&#xff0c;从而让云设施接管应用中原有的大量非功能特性&#xff08;如弹性、韧性、安全、可观测性、灰度等&a…

什么是Capto刀柄,一起来认识一下

大家好&#xff0c;今天咱们不聊齿轮&#xff0c;说一说一款刀柄的相关内容。目前&#xff0c;高速加工中心的主轴转速可以达到10,000——50,000r /min &#xff0c;极大地提高了生产率。高速加工工具系统的主要作用是保证刀具在机床主轴中的精确定位&#xff0c;将主轴的运动和…

车辆工程计算机编程:深度探索与未来挑战

车辆工程计算机编程&#xff1a;深度探索与未来挑战 随着科技的不断进步&#xff0c;车辆工程领域与计算机编程的交融日益紧密&#xff0c;为行业发展注入了新的活力。然而&#xff0c;对于许多人来说&#xff0c;车辆工程计算机编程究竟学什么&#xff0c;仍是一个充满困惑和…

【C++刷题】优选算法——递归第四辑

记忆化搜索篇 什么是记忆化搜索&#xff1f; 带 备忘录 的递归 如何实现记忆化搜索&#xff1f; a.添加一个备忘录 <可变参数&#xff0c;返回值>b.每次递归返回的时候&#xff0c;把结果放到备忘录里c.每次递归进入的时候&#xff0c;先查看一下备忘录 记忆化搜索 vs 常…

对于个人而言,大数据时代如何更好地管理自己的信息?

在大数据时代&#xff0c;管理个人信息变得尤为重要。以下是几个建议来更好地管理个人信息&#xff1a; 认识和了解自己的数字足迹&#xff1a;了解自己在互联网上的活动&#xff0c;包括浏览历史、社交媒体和在线购物数据等。通过查阅自己的帐户设置和隐私选项&#xff0c;可以…

golang信号通知 signal.Notify NotifyContext完整示例

在看示例之前有必要先看看Go程序中信号的默认行为&#xff0c; go中信号的默认行为如下&#xff1a; SIGHUP、SIGINT或SIGTERM信号会导致程序退出。SIGQUIT、SIGILL、SIGTRAP、SIGABRT、SIGSTKFLT、SIGEMT或SIGSYS信号会导致程序退出并进行堆栈转储。SIGTSTP、SIGTTIN或SIGT…

使用Nginx作为反向代理实现MQTT内外网通信

使用Nginx作为反向代理实现MQTT内外网通信 步骤1: 安装Nginx 确保你的服务器上已安装Nginx。如果未安装&#xff0c;可以通过以下命令在Ubuntu上安装Nginx&#xff1a; sudo apt update sudo apt install nginx步骤2: 配置Nginx 编辑Nginx的配置文件&#xff0c;通常是/etc…

全面掌握Prompt提示词技巧

本文综合介绍了Prompt提示词的各种技巧&#xff0c;包括高级提示工程技术、设计提示的通用技巧、优化prompt的十个技巧、AI提示词网站合集、提示工程指南以及ChatGPT提示词技巧等&#xff0c;旨在帮助读者深入理解和应用这些技巧&#xff0c;提高与AI模型的交互效率和质量。 文…

C++ 类模板 函数模板

类模板 #include <bits/stdc.h> using namespace std; //多少变量就写多少个 template<typename T1, typename T2> class Cat { public:Cat(){}Cat(T1 name, T2 age){this->age age;this->name name;}void print(){cout << this->name << …

Python脚本启动应用并输入账号或密码

一、简介 如果每天要启动某个软件还要输入账号密码登录的需求的话&#xff0c;可以参考本文章&#xff1b; 二、Python环境 环境&#xff1a;Python3.11 已经在Windows电脑中配置Python环境变量&#xff0c;且配置了pipd的环境变量&#xff1b; 三、安装模块 安装所需要的…

计算机毕业设计 | SpringBoot招投标系统 任务发布网站(附源码)

1&#xff0c;绪论 在市场范围内&#xff0c;任务发布网站很受欢迎&#xff0c;有很多开发者以及其他领域的牛人&#xff0c;更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上&#xff0c;任务发布网站鱼龙混杂&#xff0c;用户需要找一个…