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

使用嵌入式Tomcat服务器时遭遇NoClassDefFoundError错误求助

解决嵌入式Tomcat运行时ClassNotFoundException问题

问题根源

执行java -jar target\employees-app-1.0.jar时出现NoClassDefFoundError,核心原因是默认Maven打包生成的jar不包含依赖库,Tomcat嵌入式核心类不在运行时的classpath中。

解决方案:构建包含所有依赖的可执行Jar

使用maven-shade-plugin插件打包,它会把项目所有依赖合并到一个可执行Jar里,解决类找不到的问题。

  1. 在pom.xml的<build><plugins>节点下,添加/替换为以下插件配置(原有的tomcat6/7 maven插件是用于部署到外部Tomcat,和嵌入式Tomcat无关,可保留或删除):
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.4.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <!-- 替换成你自己的主类(启动嵌入式Tomcat的入口类) -->
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>com.yourpackage.YourMainClass</mainClass>
                    </transformer>
                </transformers>
                <!-- 可选:过滤重复签名文件,避免打包冲突 -->
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
        </execution>
    </executions>
</plugin>
  1. 重新执行打包命令:
mvn clean package
  1. 运行生成的包含所有依赖的Jar包(默认生成的Jar名称为employees-app-1.0-shaded.jar,可通过插件<finalName>自定义):
java -jar target/employees-app-1.0-shaded.jar

额外检查点

  • 确保Tomcat嵌入式依赖(tomcat-embed-core等)的scope为compile(默认无需额外指定,不要设为provided或test)。
  • 确认主类正确导入org.apache.catalina.startup.Tomcat并完成嵌入式Tomcat的初始化逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:07:33