You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat 10.0.10中@Resource等注解失效问题咨询

解决方案

Tomcat 10.x 版本对应Jakarta EE 9+规范,注解无法生效属于配置缺失或依赖冲突问题,按以下步骤排查修复即可:

  • 先检查Tomcat安装目录下的lib文件夹是否存在jakarta.annotation-api.jar:部分精简版Tomcat安装包会默认移除该依赖,缺少该jar会导致容器无法识别jakarta.annotation包下的所有注解,直接下载对应版本的jar放入lib目录重启Tomcat即可。
  • 调整@Resource注解的name属性写法:不需要加java:comp/env/前缀,直接写@Resource(name = "bean/Something")即可,Tomcat会自动补全JNDI前缀,错误的全路径写法会导致注入匹配失败。
  • 排查应用内依赖冲突:不要在项目的WEB-INF/lib下重复引入jakarta.annotation-api相关jar包,和容器自带的版本冲突也会导致注解失效。
  • 显式开启注解扫描:如果上述配置都无法解决,在你的context.xml的<Context>标签上添加annotation-scanning-enabled="true"属性,部分Tomcat 10小版本的全局配置可能会默认关闭应用层的注解扫描。

你用InitialContext手动查找正常是因为该逻辑直接调用JNDI上下文接口,不依赖注解扫描流程,和注解失效属于两个独立逻辑。Tomcat 9运行正常是因为Tomcat 9对应Java EE 8规范,默认内置了javax.annotation包的注解处理逻辑,且默认开启相关扫描。

内容的提问来源于stack exchange,提问作者dmrsuranga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:57:04