ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Spring AI MCP Server SSE 端点无响应排查指南:/sse 访问异常的快速修复路径

Spring AI MCP Server SSE 端点无响应排查指南:/sse 访问异常的快速修复路径 Spring AI MCP Server SSE 端点无响应排查指南/sse 访问异常的快速修复路径【免费下载链接】spring-aiAn Application Framework for AI Engineering项目地址: https://gitcode.com/GitHub_Trending/spr/spring-ai本文整理 Spring AI MCP Server 以 SSE 模式运行、/sse 端点无响应时的常见诱因与验证步骤。核心是版本依赖混装、WebMVC/WebFlux 栈错配、响应式配置缺失三类问题可按 WebMVC 最小修复或 WebFlux 响应式修正两条路线快速解决。30 秒判断是不是同一类问题先对照下面的现象清单多数命中就属于“/sse 无响应”这一类再按诱因逐项排查。可观察现象本文问题其他可能服务启动日志正常无异常堆栈✓端口冲突、启动失败访问 /sse 挂起、立即 404 或空响应✓路径或 base-url 前缀不符同一工程的 stdio 方式 MCP Server 正常✓协议层实现问题其他 HTTP 接口都可达只有 /sse 不通✓网关或转发配置问题控制台无明显报错✓过滤器、安全组件拦截诱因一版本与依赖混装优先级最高为什么会卡住旧命名制品m6 时代的spring-ai-mcp-server-webmvc-spring-boot-starter与新命名的spring-ai-starter-mcp-server-*并存或 BOM 与 starter 版本错位classpath 上会同时存在两套自动装配实际生效的 transport 变得不可预期。如何快速确认用依赖树检查是否同时出现spring-ai-mcp-server-*与spring-ai-starter-mcp-server-*确认导入的 BOM 版本与 starter 声明版本一致。处理移除旧命名制品只保留新版 starter版本统一交给 BOM 管理。诱因二WebMVC/WebFlux Web 栈不匹配为什么会卡住WebFlux 的 SSE transport 依赖 RouterFunction 路由挂载而对应自动装配只在响应式容器下生效。若实际跑在 servlet 容器或 classpath 混入两套 Web 栈响应式路由根本没注册/sse 自然无响应。如何快速确认看启动日志里的容器Tomcat 说明是 servlet 栈Netty 说明是响应式栈核对所用 starter 与容器是否同一栈是否存在两套 transport 类同时在场。诱因三响应式开关与端点配置缺失为什么会卡住即便 WebFlux 依赖齐全未显式声明 reactive 应用类型时应用可能落在非响应式容器SSE 路由不注册。另外自定义了base-url前缀或改过端点路径但客户端仍访问默认/sse也会“看起来无响应”。默认端点值定义在 McpServerSsePropertiessse-endpoint默认/sse消息端点默认/mcp/message。路线 AWebMVC 最小修复想最快跑通选 WebMVC 即可只引一个 starter不混入 WebFlux。dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-mcp-server-webmvc/artifactId /dependency适用场景工程本身是 servlet 栈Tomcat或当前只想先验证 MCP 工具、资源是否可用。这条路线可动部分少、复现成本低是不同栈下的务实选择并非官方路线有错。路线 BWebFlux 响应式修正走 WebFlux 路线需要三件事对齐只保留 WebFlux starter移除 WebMVC 对应依赖显式声明 reactive 应用类型补齐 SSE 端点与消息端点配置。spring: main: web-application-type: reactive ai: mcp: server: name: demo-mcp version: 0.0.1 type: ASYNC sse-endpoint: /sse sse-message-endpoint: /mcp/messages注意消息端点必须可被客户端触达改动sse-message-endpoint后客户端侧连接配置需同步修改不能只改服务端。验收步骤/sse 无响应的检查链启动后看日志确认端口与生效的 transport 类型访问http://localhost:8080/sse浏览器或 curl 进入“连接保持”状态属正常SSE 本就长连接不必期待立即返回 200 加正文用 POST 向/mcp/messages或自定义的sse-message-endpoint发送 initialize 消息Postman 走完全程/sse 挂住 → initialize 成功 → 能列出工具即验收通过。兼容风险提示版本一致BOM、starter、手指定版制品保持同版本不留旧命名制品栈互斥WebMVC 与 WebFlux 的 starter 不要同时上 classpathFeign 客户端reactive 应用下 Feign 可能不可用混用时先单独验证网关转发SSE 经过网关时留意缓冲与超时配置异常时先直连后端排除网关层。选型一句话servlet 工程选路线 A响应式工程选路线 B两条路线的共同底线是“一个 starter 版本一致 按验收链验证”。传输细节可能随版本迭代调整最终以官方文档与当前 BOM 为准。【免费下载链接】spring-aiAn Application Framework for AI Engineering项目地址: https://gitcode.com/GitHub_Trending/spr/spring-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表