Caused by: org.apache.catalina.LifecycleException: Failed to read the manifest from the archive [..\lib\aspectjweaver-1.8.12.jar] 解决方案
tomcat11 启动报错:
23-Sep-2026 06:05:17.249 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\webapps\ROOT]
23-Sep-2026 06:05:17.566 严重 [main] org.apache.catalina.startup.HostConfig.deployDirectory 无法部署应用目录 [D:\webapps\ROOT]
java.lang.IllegalStateException: 启动子级时出错
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:586)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:677)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1889)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:92)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:125)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:996)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:412)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1612)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:286)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:115)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:342)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:759)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:794)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:170)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1204)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1200)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:92)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:149)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:732)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:201)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:170)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:170)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:871)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:170)
at org.apache.catalina.startup.Catalina.start(Catalina.java:883)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:482)
Caused by: org.apache.catalina.LifecycleException: Failed to read the manifest from the archive [D:\webapps\ROOT\WEB-INF\lib\aspectjweaver-1.8.12.jar]
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:155)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:128)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:161)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:783)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:170)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4305)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4427)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:170)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:583)
... 34 more
Caused by: java.util.zip.ZipException: Invalid CEN header (invalid zip64 extra data field size)
at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1831)
at java.base/java.util.zip.ZipFile$Source.checkZip64ExtraFieldValues(ZipFile.java:1345)
at java.base/java.util.zip.ZipFile$Source.checkExtraFields(ZipFile.java:1305)
at java.base/java.util.zip.ZipFile$Source.checkAndAddEntry(ZipFile.java:1224)
at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1767)
at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1542)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1506)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:704)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:204)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:150)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:333)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:151)
... 42 more
23-Sep-2026 06:05:17.575 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\webapps\ROOT]的部署已在[320]毫秒内完成
23-Sep-2026 06:05:17.584 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["https-jsse-nio-127.0.0.1-8000"]
23-Sep-2026 06:05:17.611 信息 [main] org.apache.catalina.startup.Catalina.start [421]毫秒后服务器启动
这个报错的原因是:从 JDK 21 升级到 25 后,JDK 对 ZIP/JAR 文件的校验更加严格,而你的应用依赖的 aspectjweaver-1.8.12.jar 是一个旧版本,其内部 ZIP64 头结构不符合规范,导致 Tomcat 无法读取该文件并启动失败。
根本原因
JDK 在较新的版本中(包括 21 的后续更新及 25)加强了对 ZIP64 扩展字段的校验。你的 aspectjweaver-1.8.12.jar 在生成时使用了有缺陷的工具(可能是旧版 Ant 或 BND),导致 JAR 内部的 ZIP64 额外字段数据无效。Tomcat 启动时扫描 WEB-INF/lib 下的所有 JAR,读到这个文件时就抛出了 Invalid CEN header 异常。
解决方案
方案一:升级 aspectjweaver 依赖(推荐)
将 aspectjweaver 升级到 1.8.14 或更高版本。OpenJDK 官方已确认 1.8.14 修复了该 JAR 的 ZIP64 规范符合性问题。
方案二:添加 JVM 启动参数(快速绕过)
如果暂时无法升级依赖,可以在 Tomcat 的启动参数中添加以下系统属性来禁用 ZIP64 校验:
-Djdk.util.zip.disableZip64ExtraFieldValidation=true
注意:Tomcat 本身支持这个参数,但该属性无法绕过 javac 或 ZipFileSystem 中的校验。不过对于 Tomcat 部署场景,这个开关通常足够让服务启动起来。
页面地址(查看所有版本)
- MvnRepository:https://mvnrepository.com/artifact/org.aspectj/aspectjweaverMvnReposit...
- Maven Central:https://repo1.maven.org/maven2/org/aspectj/aspectjweaver/
浙公网安备 33010602011771号