gpt4 book ai didi

Spring Boot 1.4.3 嵌入式Tomcat NoSuchMethodError StringManager.getManager

转载 作者:行者123 更新时间:2023-11-28 22:17:08 25 4
gpt4 key购买 nike

我已经更新我的项目以使用 Spring BOOT 1.4.3。代码在 Eclipse Neon 1 中编译和运行没有问题。但是当我从命令行运行时

mvn clean install -DskipTests

java -jar myweb\target\my-web-1.0-SNAPSHOT.jar

我遇到运行时错误,tomcat 没有启动

Caused by: java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
at org.apache.catalina.util.LifecycleBase.<clinit>(LifecycleBase.java:43) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]

请问为什么?如何在运行时查找使用哪个tomcat,据我了解是8.5.6具有编译范围(?)

请帮忙。如果建议是在 POM 文件的属性中使用 tomcat.version 或添加 tomcat-juli 依赖项,请帮助我理解为什么需要它?

不耐烦的 stackoverflow 用户不会仅仅因为你能做到就鞭打新来者。您可以轻松地询问是否需要我的 POM,但我只使用了 spring-boot-starter-web 而已。

最佳答案

对于这种问题,通常是由于多个jar在你的类路径中有相同的类,所以:

  1. 通过打开类型弹出窗口(在 Eclipse 中为 CTRL + SHIFT + T)找到此类/方法的来源。它将向您显示类路径中包含该类的每个 jar。
  2. 打开每个 jar 中的类,看看哪个包含您的方法,哪个不包含。
  3. 使用mvn dependency:tree显示项目的依赖层次结构
  4. 如果这 2 个 jar 在您的类路径中,您可以排除不包含该方法的那个。

关于Spring Boot 1.4.3 嵌入式Tomcat NoSuchMethodError StringManager.getManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41936575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com