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

Spring WebService 的两种主流实现方式‌

‌Spring-WSSpring Web Services‌采用 ‌Contract First自顶向下‌ 方式先定义 XSD/WSDL再生成 Java 代码。适用于企业级、高可维护性的 SOAP 服务。‌Spring Boot JAX-WS通常用 Apache CXF‌采用 ‌Contract Last自底向上‌ 方式通过 WebService 注解将 Java 类暴露为 Web Service。开发更快速适合快速原型或内部系统集成。1、‌Spring-WSContract First核心步骤‌‌添加依赖‌MavendependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web-services/artifactId/dependencydependencygroupIdwsdl4j/groupIdartifactIdwsdl4j/artifactId/dependency‌定义 XSD Schema‌如 src/main/resources/xsd/login.xsdxs:schema targetNamespacehttp://example.com/ws/loginelementFormDefaultqualifiedxmlns:xshttp://www.w3.org/2001/XMLSchemaxs:element nameloginRequestxs:complexTypexs:sequencexs:element nameusername typexs:string/xs:element namepassword typexs:string//xs:sequence/xs:complexType/xs:elementxs:element nameloginResponsexs:complexTypexs:sequencexs:element nameresult typexs:string//xs:sequence/xs:complexType/xs:element/xs:schema‌自动生成 Java 类‌使用 JAXB2 Maven 插件plugingroupIdorg.codehaus.mojo/groupIdartifactIdjaxb2-maven-plugin/artifactIdversion1.6/versionconfigurationschemaDirectory${project.basedir}/src/main/resources/xsd//schemaDirectoryoutputDirectory${project.basedir}/src/main/java//outputDirectory/configurationexecutionsexecutiongoalsgoalxjc/goal/goals/execution/executions/plugin‌创建 Endpoint‌Endpointpublic class LoginEndpoint {private static final String NAMESPACE_URI http://example.com/ws/login;PayloadRoot(namespace NAMESPACE_URI, localPart loginRequest)ResponsePayloadpublic LoginResponse login(RequestPayload LoginRequest request) {// 业务逻辑LoginResponse response new LoginResponse();response.setResult(success);return response;}}‌配置 WebServiceConfig‌ConfigurationEnableWspublic class WebServiceConfig extends WsConfigurerAdapter {Beanpublic ServletRegistrationBean messageDispatcherServlet(ApplicationContext context) {MessageDispatcherServlet servlet new MessageDispatcherServlet();servlet.setApplicationContext(context);servlet.setTransformWsdlLocations(true);return new ServletRegistrationBean(servlet, /ws/*);}Bean(name login)public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema schema) {DefaultWsdl11Definition wsdl new DefaultWsdl11Definition();wsdl.setPortTypeName(loginPort);wsdl.setLocationUri(/ws);wsdl.setSchema(schema);return wsdl;}Beanpublic XsdSchema schema() {return new SimpleXsdSchema(new ClassPathResource(xsd/login.xsd));}}‌访问 WSDL‌启动应用后访问 http://localhost:8080/ws/login.wsdl 查看服务描述。2、‌Spring Boot CXFContract Last‌添加依赖‌dependencygroupIdorg.apache.cxf/groupIdartifactIdcxf-spring-boot-starter-jaxws/artifactIdversion3.3.1/version/dependency‌定义接口与实现类‌WebServicepublic interface OrderWS {WebMethodOrder getOrderById(int id);}WebService(endpointInterface com.example.OrderWS)public class OrderWSImpl implements OrderWS {Overridepublic Order getOrderById(int id) {return new Order(id, Product, 999.99);}}‌配置发布端点‌Configurationpublic class WebServiceConfig {Autowiredprivate OrderWSImpl orderWSImpl;Beanpublic Endpoint endpoint() {EndpointImpl endpoint new EndpointImpl(new SpringBus(), orderWSImpl);endpoint.publish(/orderws);return endpoint;}}‌访问 WSDL‌http://localhost:8080/orderws?wsdl3、‌注意事项‌‌Spring-WS‌ 更适合需要严格契约控制、长期维护的系统。‌CXF JAX-WS‌ 开发更快但耦合度较高适合内部服务或快速迭代场景。避免使用过时的 Axis1/Axis2除非维护遗留系统 ‌。

相关文章:

Spring WebService 的两种主流实现方式‌

‌Spring-WS(Spring Web Services)‌:采用 ‌Contract First(自顶向下)‌ 方式,先定义 XSD/WSDL,再生成 Java 代码。适用于企业级、高可维护性的 SOAP 服务。 ‌Spring Boot JAX-WS&#xf…...

JavaQuestPlayer:高性能QSP游戏引擎架构深度解析与开发实践

JavaQuestPlayer:高性能QSP游戏引擎架构深度解析与开发实践 【免费下载链接】JavaQuestPlayer 项目地址: https://gitcode.com/gh_mirrors/ja/JavaQuestPlayer JavaQuestPlayer是一款基于JavaSE开发的高性能QSP(Quest Soft Player)游…...

跨模态注意力机制在视频理解中的应用与优化

1. 跨模态注意力机制的技术解析跨模态注意力机制(Cross-Attention)作为连接视觉与语言模态的核心技术,其工作原理类似于人类大脑处理多感官信息的方式。当我们在观看视频时,视觉皮层和语言中枢会协同工作——这正是跨模态注意力在…...

如何用 removeChild 与 remove 方法从页面 DOM 中移除元素

...

LoRAX技术解析:大语言模型多任务动态推理优化方案

1. 项目概述LoRAX(LoRA Exchange)是一种针对大语言模型(LLM)推理优化的创新方法,它通过参数交换技术实现了低成本、高效率的模型微调与推理。我在实际部署LLM服务时发现,传统微调方法存在显存占用高、切换成…...

LLM智能体开发资源导航:框架、基准与工具全景指南

1. 项目概述:一份面向LLM智能体开发者的“藏宝图”如果你正在研究或开发基于大语言模型(LLM)的智能体(Agent),并且感觉信息过载、工具繁多、评测标准不一,那么你很可能需要一份系统性的导航。zh…...

编辑器内正则表达式工具箱:告别浏览器标签,提升开发效率

1. 项目概述:一个让你彻底告别浏览器标签的编辑器内正则表达式工具箱 如果你和我一样,是个每天要和正则表达式打交道的开发者,那你一定经历过这样的场景:为了验证一个复杂的匹配模式,你不得不打开浏览器,在…...

基于Cloudflare Workers构建ChatGPT插件:无服务器后端开发实战

1. 项目概述与核心价值最近在折腾AI应用开发,特别是如何让ChatGPT这类大语言模型(LLM)能“动手”去干点实事,比如查查天气、搜搜代码库。OpenAI推出的插件(Plugin)机制,正好提供了一个标准化的桥…...

CMHG数据集:中国少数民族语言标题生成研究突破

1. CMHG数据集:填补中国少数民族语言标题生成研究空白在自然语言处理领域,标题生成技术一直是个既基础又关键的研究方向。想象一下,当你浏览新闻网站时,那些吸引你点击的标题背后,正是这项技术的实际应用。然而&#x…...

LLM评估偏见:文本相似度与模型规模的影响

1. 研究背景与问题定义在自然语言处理(NLP)领域,文本摘要任务的质量评估一直是个关键挑战。传统上,研究人员依赖ROUGE和BLEU等基于n-gram重叠的指标来衡量机器生成摘要与人类参考摘要的相似度。这些指标计算共同词汇和短语的出现频…...

【硬核科普】IP67防护等级:你的设备真的能“水下30分钟”吗?

🔥作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习 🎬擅长领域:驱动开发,嵌入式软件开发,BSP开发 ❄️作者主页:一个平凡而…...

条件概率:从基础概念到机器学习实战

1. 条件概率的核心概念解析 条件概率是概率论中一个既基础又强大的工具,它描述的是在已知某些事件发生的前提下,另一事件发生的概率。我第一次真正理解这个概念的重要性是在分析用户行为数据时——当我们知道用户已经点击了某个广告,那么他们…...

STM32外部Flash编程与Keil MDK算法开发指南

1. STM32外部Flash编程基础解析在嵌入式系统开发中,外部Flash存储器扩展已成为应对大容量存储需求的常见解决方案。当STM32微控制器的内部Flash容量不足以容纳应用程序代码或数据资源时,外部Flash器件通过SPI、Quad-SPI或Octo-SPI等接口为系统提供额外的…...

NoFences:三分钟搞定Windows桌面混乱的终极分区方案

NoFences:三分钟搞定Windows桌面混乱的终极分区方案 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为满屏的桌面图标头疼吗?每次找文件都要"…...

如何快速获取离线小说:Tomato-Novel-Downloader完整指南

如何快速获取离线小说:Tomato-Novel-Downloader完整指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 番茄小说下载器是一款专为数字阅读爱好者设计的开源工具&a…...

如何在2026年继续畅玩经典Flash游戏:CefFlashBrowser完全指南

如何在2026年继续畅玩经典Flash游戏:CefFlashBrowser完全指南 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 当主流浏览器纷纷放弃对Flash的支持后,你是否还在为无…...

手把手教你用frp+WebSocket,把家里的树莓派服务安全暴露到公网(保姆级配置)

树莓派私有云安全外网访问:基于frp与WebSocket的全链路加密方案 在家庭宽带环境下搭建私有云服务(如Nextcloud、Home Assistant或Jellyfin媒体服务器)时,最大的痛点莫过于如何安全稳定地从外网访问这些服务。传统方案需要公网IP和…...

SPI、I2C、UART怎么选?一个实际项目中的通信协议选型踩坑与避坑指南

SPI、I2C、UART通信协议选型实战:从理论到避坑指南 在嵌入式系统设计中,通信协议的选择往往决定了整个项目的成败。作为一名经历过多次"踩坑"的工程师,我深刻体会到协议选型不仅仅是技术参数的对比,更需要考虑实际工程环…...

告别模糊!用iPhone 15 Pro Max的屏幕参数,手把手教你设置完美手机壁纸和视频封面

iPhone 15 Pro Max屏幕适配终极指南:打造完美壁纸与封面的专业技巧 每次在社交媒体上看到别人分享的iPhone壁纸都清晰锐利,而自己设置的却总是模糊或被裁剪?作为内容创作者,你是否也遇到过精心设计的视频封面在上传后变得面目全非…...

别再被硬盘容量搞懵了!手把手教你用IDEMA公式算清512B和4K扇区的真实大小

别再被硬盘容量搞懵了!手把手教你用IDEMA公式算清512B和4K扇区的真实大小 每次购买新硬盘时,你是否也遇到过这样的困惑:明明包装上写着1TB,插到电脑上却只显示931GB?这消失的69GB去哪儿了?今天我们就来彻底…...

Bodymovin扩展面板:5步快速上手After Effects动画导出终极指南

Bodymovin扩展面板:5步快速上手After Effects动画导出终极指南 【免费下载链接】bodymovin-extension Bodymovin UI extension panel 项目地址: https://gitcode.com/gh_mirrors/bod/bodymovin-extension Bodymovin扩展面板是连接Adobe After Effects与Web、…...

命令行AI助手chatgpt-cli:多模型集成与智能代理实战

1. 项目概述:一个全能型命令行AI助手如果你和我一样,每天有大量时间花在终端里,同时又频繁地与各种大语言模型(LLM)打交道,那么你肯定也经历过这种割裂感:写代码、查日志、调试系统时&#xff0…...

告别集中式服务器:深入解读Kimera-Multi的分布式GNC算法如何实现高效鲁棒的多机SLAM

分布式SLAM的革命:Kimera-Multi如何用GNC算法重塑多机器人协同建图 当三个机器人在茂密的森林中执行搜救任务时,它们面临着一个经典困境:如何在有限的通信带宽下,准确识别彼此的位置并构建统一的环境地图?传统集中式SL…...

为本地大模型注入联网与工具调用能力:MCP服务器实战指南

1. 项目概述:一个为本地大模型注入“联网”与“工具调用”能力的MCP服务器如果你和我一样,是个喜欢折腾本地大模型(LLM)的开发者,那你肯定对“上下文窗口耗尽”和“知识截止日期”这两个词深恶痛绝。我们费尽心思部署了…...

多模态大语言模型的搜索增强技术与实践

1. 多模态大语言模型的搜索增强挑战与突破在开放世界的知识问答场景中,多模态大语言模型(MLLMs)面临着两个核心挑战:一是如何有效整合视觉与文本的跨模态理解能力,二是如何实时获取动态更新的外部知识。传统方法主要依…...

Upload-Labs靶场通关前必读:从安装到漏洞分类的完整学习路线

Upload-Labs靶场通关实战指南:从漏洞解析到防御体系构建 当你第一次打开Upload-Labs靶场界面,面对20个看似相似却又各不相同的文件上传关卡时,是否感到无从下手?这个看似简单的靶场实则暗藏玄机,涵盖了从基础绕过到高级…...

VS Code Copilot Next 安全配置黄金清单:从本地缓存加密到企业代理审计日志,12项NIST SP 800-218合规实践

更多请点击: https://intelliparadigm.com 第一章:VS Code Copilot Next 自动化工作流配置安全性最佳方案 VS Code Copilot Next 在提升开发效率的同时,其自动化补全、代码生成与工作流集成能力也引入了新的安全边界挑战。为确保敏感上下文不…...

告别答辩 PPT 熬夜,PaperXie 用 15776 套模板帮你轻松通关毕业季

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 答辩前三天,宿舍台灯下的你是不是又在对着空白 PPT 发呆?论文写了大半个月,却卡在了 “把…...

告别熬夜改 PPT!Paperxie AI 一键搞定毕业论文答辩 PPT,从容站上讲台

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 毕业季的深夜,你是不是对着空白的 PPT 模板发呆?论文改了十几遍,答辩 PPT 却还是一团乱…...

别再只算极差了!用SPSSAU三因素方差分析,5分钟搞定正交试验结果解读

正交试验数据分析进阶:从极差分析到方差分析的实战指南 在工程优化和科研实验中,正交试验设计因其高效性被广泛应用。许多研究者习惯使用极差分析法处理正交试验数据——这种方法直观简单,只需计算各因素水平下指标的平均值,然后比…...