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

部署WAR文件时出现webservices-api.jar未找到的Tomcat扫描错误求助

解决Tomcat部署WAR时找不到webservices-api.jar的错误

我来帮你一步步排查解决这个问题——这个错误我之前碰到过好几次,本质都是Tomcat的类路径解析出了问题,咱们从这几个方向入手:

  • 检查目标JAR是否真的存在
    先去你Tomcat安装目录下的lib文件夹看看,有没有webservices-api.jar这个文件:

    • 如果不存在,要么是Tomcat安装不完整(比如解压包时丢了文件),要么是这个JAR被误删除了。解决办法:
      1. 下载和你当前Tomcat版本匹配的安装包,从里面的lib目录复制这个JAR到你的Tomcatlib文件夹;
      2. 如果你确定项目不需要这个JAR,可以检查项目依赖(比如Maven的pom.xml),看看是不是不小心引入了多余的依赖,把它排除掉。
  • 验证CATALINA_HOME环境变量是否正确配置
    Tomcat的很多路径解析都依赖CATALINA_HOME环境变量,如果这个变量没设置或者设置错误,就会导致Tomcat默认去/tomcat/lib这种错误路径找文件:

    • Linux/macOS:打开终端,执行echo $CATALINA_HOME,看看输出是不是你的Tomcat根目录。如果不对,在~/.bashrc(或~/.zshrc)里添加export CATALINA_HOME=/path/to/your/tomcat,然后重启终端和Tomcat;
    • Windows:右键"此电脑"→"属性"→"高级系统设置"→"环境变量",检查有没有CATALINA_HOME变量,值是不是你的Tomcat根目录,没有的话新建一个,然后重启Tomcat服务。
  • 修改Tomcat的JarScanner配置,跳过不存在的JAR
    如果上面两步都没问题,可能是Tomcat的JarScanner硬要扫描这个不存在的JAR。你可以修改conf/context.xml文件,添加JarScanFilter来跳过它:
    打开conf/context.xml,在<Context>标签内添加:

    <JarScanner>
        <JarScanFilter defaultPluggabilityScan="false" tldSkip="webservices-api.jar"/>
    </JarScanner>
    

    这样Tomcat就会跳过扫描这个JAR,避免抛出错误。

  • 检查项目依赖的scope配置
    如果你的项目是用Maven/Gradle构建的,看看webservices-api的依赖范围是不是设错了:

    • 如果这个API是Tomcat本身应该提供的(比如JAX-WS相关的API),把依赖的scope设为provided,这样打包时不会把它打进WAR包,Tomcat会用自己的版本;
    • 如果是多余的依赖,直接从配置文件里删掉就行。

补充说明:StandardJarScanner是Tomcat用来扫描类路径下JAR文件,查找TLD标签库、注解等资源的组件,当它找不到配置中指定的JAR时,就会抛出这个FileNotFoundException。错误里的//tomcat/lib路径说明路径解析时没有正确关联到你的Tomcat实际安装目录,这也是排查的核心方向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:06:09