news 2026/4/3 21:28:41

Spring Boot + LangChain4j 报错:Bean 类型不匹配的解决办法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot + LangChain4j 报错:Bean 类型不匹配的解决办法

在使用 Spring Boot + LangChain4j 开发 AI 应用时,在 Service 工厂中注入如下两个Bean:

@ResourceprivateStreamingChatModelopenAiStreamingChatModel;@ResourceprivateStreamingChatModelreasoningStreamingChatModel;

一切看起来都很合理,但启动时就报如下错误❌:

Bean named'openAiStreamingChatModel'is expected to be oftype'dev.langchain4j.model.chat.StreamingChatModel'but was actually oftype'dev.langchain4j.model.openai.OpenAiStreamingChatModel'

最诡异的是OpenAiStreamingChatModel明明是StreamingChatModel的子类,期望类型和实际类型“看起来完全兼容”,但还是报错!

原因分析

这个错误的根源,其实不是代码逻辑的问题,而是spring-boot-devtools的热部署机制导致的类加载冲突。

Spring Boot DevTools 为了实现快速重启,使用了两个类加载器。
一个是Base ClassLoader,主要负责加载Spring Boot 框架、第三方 jar(比如 langchain4j-core.jar);

另一个是Restart ClassLoader,主要负责加载自己的项目代码(比如src/main/java)。

默认情况下,DevTools 会把 所有非项目代码的 jar 放入 Base ClassLoader

但是!

LangChain4j 这类库,通过 Maven 引入,它其实是属于“第三方依赖”,理应由Base ClassLoader加载。

然而,在某些版本或配置下,DevTools 可能错误地将部分LangChain4j类交给了Restart ClassLoader

这样就造成同一个类,有两个身份,这样 JVM 认为这是两个完全无关的类。即使包名、类名、继承关系都对,也无法进行类型转换或赋值。

解决方案

1.在项目的如下目录中创建文件:

src/main/resources/META-INF/spring-devtools.properties

2.文件内容如下,主要目的是告诉 DevTools,这些 jar 属于基础类路径,统一用Base ClassLoader加载。

restart.include.langchain4j=/langchain4j-.*\.jar restart.include.openai=/openai-.*\.jar

3.重新运行,问题解决。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 19:39:14

雷诺与法国国家橄榄球队,在紧张激烈的体育影片中庆祝愿景

雷诺与法国国家橄榄球队合作六年,双方在一部紧张激烈的体育影片中共同庆祝彼此的愿景。因为在橄榄球运动中,正如雷诺的愿景一样,必须回顾过去才能展望未来。橄榄球是唯一一项必须通过向后传球来推进并取得优势的运动。这一独特之处正是这项运…

作者头像 李华
网站建设 2026/3/28 6:19:42

还得是腾讯,Claude Code迎来最强中国对手!企业Agent有救了~

大家好,我是最近天天折腾CLI Agent的袋鼠帝。 一周前,我给大家安利了一款Claude Code的最强开源对手:OpenCode,没想到文章发出去后反响这么热烈,不管是阅读量还是评论都非常多。 这也再次印证了,天下苦Ant…

作者头像 李华
网站建设 2026/3/31 20:09:46

深入解析微软Outlook远程代码执行高危漏洞(CVE-2023-36895)

Microsoft Outlook 远程代码执行漏洞 (CVE-2023-36895) 摘要 本文讨论了于2023年8月8日发布的关键安全漏洞CVE-2023-36895,该漏洞与微软Outlook相关。文章分析了该漏洞的影响、严重性及其潜在风险,并探讨了微软为解决此漏洞提供的修复步骤和官方补丁。 引…

作者头像 李华
网站建设 2026/3/26 20:17:45

爆火的AI Agent究竟是啥?一篇文章给你讲透!(内含实例)

*一、前言:AI Agent火爆登场!* 要说今年上半年科技圈的“网红”,AI Agent(人工智能代理)绝对算一个!笔者最近也紧跟潮流,对这玩意儿进行了深入研究,还用智能体开发平台搞了几个有意…

作者头像 李华
网站建设 2026/4/1 2:48:13

银行反洗钱工作,身份核验添技术支撑

反洗钱是银行合规运营的核心要求,而精准识别客户身份是反洗钱工作的基础。护照阅读器可与银行反洗钱系统、客户识别系统无缝对接,读取护照信息后自动检索风险数据库,快速识别高风险客户或可疑交易线索。通过OCR数据与电子芯片内容交叉验证&am…

作者头像 李华
网站建设 2026/3/27 16:07:03

资源泄露:为什么你的文件句柄总是“莫名其妙”耗尽?

🚀 引言:谁动了我的句柄? “java.io.IOException: Too many open files”。 看到这个报错时,你的服务器可能已经陷入了“半死不活”的状态:无法建立新的数据库连接、无法读取配置文件、甚至连 SSH 都可能连不上。最诡异…

作者头像 李华