SpringBoot运行时提示NoSuchMethodError: org.apache.tomcat.util.modeler.Registry.disableRegistry()V

文章讲述了在使用SpringBoot2.7.8时,由于指定的Tomcat9.0.39版本与应用不匹配导致的NoSuchMethodError。解决方法是检查Tomcat版本或在pom.xml中强制指定tomcat-embed-core的版本。
摘要由CSDN通过智能技术生成

java.lang.NoSuchMethodError: org.apache.tomcat.util.modeler.Registry.disableRegistry()V
    at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:192)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:184)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:577)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
    at com.xuecheng.manage_cms_client.ManagerCmsClientApplication.main(ManagerCmsClientApplication.java:15)
2024-03-25 16:14:01.210 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - 

报错日志如上

SpringBoot的依赖版本是

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.8</version>
    </parent>

主要原因是springboot依赖的tomcat版本是9.0.39

但是在依赖tomcat的时候错误的指定版本为

问题就出在tomcat版本和springboot的版本不匹配造成的,所以出现这种问题,需要检查tomcat版本,实在不想检查也可以直接在pom文件中添加

        <dependency>-->
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>9.0.39</version>
             <scope>compile</scope>
        </dependencies>

进行强制依赖tomcat版本

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
java.lang.NoSuchMethodError: org.apache.tomcat.util.buf.UriUtil.isAbsoluteUrl 这个错误是Java编程中常见的错误之一。它表示在运行时,程序在尝试调用org.apache.tomcat.util.buf.UriUtil类的isAbsoluteUrl方法时,找不到对应的方法。可能会出现以下几种情况导致这个错误: 1. 版本不兼容:通常是因为程序在编译时使用了较新的Tomcat库,但在运行时使用的却是较旧的Tomcat库。在较旧的版本中,UriUtil类可能没有isAbsoluteUrl方法,导致调用错误。 解决方法:将编译时和运行时使用的Tomcat库版本保持一致。 2. 缺少依赖:可能是程序所依赖的某个库文件或Jar包丢失或版本不正确,导致UriUtil类无法找到正确的方法。 解决方法:检查程序所依赖的库文件或Jar包是否存在、是否正确引入,并确保它们的版本与程序兼容。 3. 类路径问题:可能是程序无法正确加载org.apache.tomcat.util.buf.UriUtil类,导致无法找到isAbsoluteUrl方法。 解决方法:检查类路径设置是否正确,并确保程序可以正确加载相关类。 4. 代码错误:有可能是程序在调用isAbsoluteUrl方法时传递了错误的参数类型或参数个数,导致方法找不到。 解决方法:检查代码中调用isAbsoluteUrl方法的地方,确保传递的参数类型和个数与方法声明一致。 总结而言,java.lang.NoSuchMethodError: org.apache.tomcat.util.buf.UriUtil.isAbsoluteUrl错误通常是由于版本不兼容、缺少依赖、类路径问题或代码错误导致的。我们需要根据具体情况进行诊断和解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值