Spring AI mcp的baseUrl问题解决了
这里如果不配置base-url,我通过http://localhost:8080/sse 可以正常访问。
如果配置了base-url=/api/v1,我看官方文档后我通过http://localhost:8080/api/v1/sse 无法访问
找到源码看了下
▼text复制代码public WebMvcSseServerTransportProvider(ObjectMapper objectMapper, String baseUrl, String messageEndpoint, String sseEndpoint) { this.sessions = new ConcurrentHashMap(); this.isClosing = false; Assert.notNull(objectMapper, "ObjectMapper must not be null"); Assert.notNull(baseUrl, "Message base URL must not be null"); Assert.notNull(messageEndpoint, "Message endpoint must not be null"); Assert.notNull(sseEndpoint, "SSE endpoint must not be null"); this.objectMapper = objectMapper; this.baseUrl = baseUrl; this.messageEndpoint = messageEndpoint; this.sseEndpoint = sseEndpoint; this.routerFunction = RouterFunctions.route().GET(this.sseEndpoint, this::handleSseConnection).POST(this.messageEndpoint, this::handleMessage).build(); }
▼text复制代码@Bean public RouterFunction<ServerResponse> mvcMcpRouterFunction(WebMvcSseServerTransportProvider transportProvider) { return transportProvider.getRouterFunction(); }
这里并没有把base-url放入router里面,这时候去访问http://localhost:8080/sse 还是无法访问。 最后找到了解决问题 配置文件你需要加上这段,就可以正常访问了。context-path是应用全局的路径前缀,而base-url是 MCP 组件内部的路径前缀,两者同时存在时会叠加生效 之前仅配置了组件级别的base-url而没有配置框架级别的context-path,导致路径映射有问题
▼text复制代码server: port: 8080 servlet: context-path: /api/v1
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
入职有两三周了,现在在做项目的一些比较杂的需求,前后端都有。但是技术栈我完全不熟,以前用的是Java相关的,现在这个项目用的是python开发。现在我基本只会用Claude code完成这些需求,感觉目前只会使用AI,对它产出的东西我做不了任何的判断,而且自己摸索着做效率也不高,感觉以前学的东西没法运用起来。感觉自己没学到什么,也不知道自己下一步应该怎么去继续提升?大家有什么好办法吗,我之前也没有
3
使用 claude code 遇到的问题
3
请问对于这里的项目有什么好的学习方方法吗?我有编程基础,但项目经验几乎没有,想业余时间做项目。
2
厦门绩牛科技 AI应用开发一面
3
厦门国投智能 java AI应用开发 面试题
6
作者分享
唉,感觉用了AI过后,自己代码能力就下降了好多,不太会写代码了都。
1
发个内推
3
Ai智能体项目关于MCP部分的问题有人知道吗?
1.Ai智能体项目的mcp,通过sse方式如果服务端不启用或者挂了,客户端也会崩掉,有没有啥配置即使服务端崩掉了,客户端也可以正常使用只是不用这个智能体接口或者工具。
2.如果服务端配置了server.servlet.context-path,客户端即使在sse-endpoint里面带上了context-path,比如/api,但是还是会重定向错误302
2
Java生成Excel中的组合图
1
java有什么关于图表生成的工具吗?搜了一下JFreeChart感觉图像样式有点老旧啊。
1
