在 pom.xml 中添加 tomcat-embed-jasper Artifact 后,Java 应用程序抛出错误

标签 java maven spring-boot intellij-14 maven-tomcat-plugin

添加 tomcat-embed-jasper 依赖项后出现以下错误。

Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/C:/Users/Vishal/.m2/repository/org/eclipse/jdt/ecj/3.12.3/ecj-3.12.3.jar
at org.springframework.boot.devtools.restart.ChangeableUrls.getUrlsFromClassPathOfJarManifestIfPossible(ChangeableUrls.java:110)
at org.springframework.boot.devtools.restart.ChangeableUrls.fromUrlClassLoader(ChangeableUrls.java:96)
at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getUrls(DefaultRestartInitializer.java:93)
at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getInitialUrls(DefaultRestartInitializer.java:56)
at org.springframework.boot.devtools.restart.Restarter.<init>(Restarter.java:140)
at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:546)
at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:67)
at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:45)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)
at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:69)
at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:48)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:292)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
at com.example.demo.DemoApplication.main(DemoApplication.java:10)
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access$1400(ZipFile.java:60)
at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:734)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:434)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at sun.misc.IOUtils.readFully(IOUtils.java:65)
at java.util.jar.JarFile.getBytes(JarFile.java:425)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:193)
at java.util.jar.JarFile.getManifest(JarFile.java:180)
at org.springframework.boot.devtools.restart.ChangeableUrls.getUrlsFromManifestClassPathAttribute(ChangeableUrls.java:131)
at org.springframework.boot.devtools.restart.ChangeableUrls.getUrlsFromClassPathOfJarManifestIfPossible(ChangeableUrls.java:107)
... 17 more

我在每个 IDE 中都尝试过,但到处都遇到同样的错误。请帮助我理解原因。 Maven 自动更新依赖项,但是当我运行我的应用程序时,出现上述错误。

我在 pom.xml 中添加以下代码

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

最佳答案

这可能表明 jar 已损坏。尝试从 Maven 缓存中删除该 Artifact ,或者直接删除整个缓存 (C:/Users/Vishal/.m2/repository/),以便从头开始重新创建它。

Spring Boot 项目中报告的类似问题 here就这样解决了。

关于在 pom.xml 中添加 tomcat-embed-jasper Artifact 后,Java 应用程序抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47817027/

相关文章:

Java 使用可运行 jar getClass().getClassLoader().getResource ("path") 导出图像返回 null

java - 如何将 Maven 变量传递给 asciidoctor-maven-plugin?

java - Spring——跳过此测试的飞路

java - Spring 将 @PathVariable 绑定(bind)到 JavaBean

spring-boot - Spring Boot-使用prod属性覆盖的测试属性

java - 使用 install4j 以 root 身份启动服务

java - spring cloud端口号,让选择变得智能

java - 在 Spring JPA 中映射 postgres 数组时出错

java - Spring Boot 找不到 View

java - 在 Gradle 中使用 SWT 无法解决所有依赖项