springboot项目报错,如何解决?

idea运行一个项目,报错了,查了很多资料,大部分都是说jar包冲突,但是捣鼓了很久,还是不行
这是报错信息:

img

img

img

img

这是我的pom.xml文件:

img

img

img

这是项目的代码:

img

img

img

img

img

img

img

img

img

img

img

img

img

img

img

img

img

这是html页面 chinadatamanage.html:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <script th:src="@{/echarts/jquery-3.6.3.min.js}"></script>
  <link rel="stylesheet" th:href="@{/layui/css/layui.css}" media="all">
  <script th:src="@{/layui/layui.js}" charset="utf-8"></script>
  <style>
    body{margin: 10px;}
    .demo-carousel{height: 200px; line-height: 200px; text-align: center;}
  </style>
</head>
<body>
<!--layui公共模块-->
<div th:include="commonmenu :: menu"></div>
<div class="layui-body">
  <!-- 内容主体区域 -->
  <div style="padding: 15px;">
    <table class="layui-hide" id="demo" lay-filter="test"></table>
  </div>
</div>


<script type="text/html" id="barDemo">
  <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
  <a class="layui-btn layui-btn-xs" lay-event="more">更多 <i class="layui-icon layui-icon-down"></i></a>
</script>


<script>
  layui.config({
    version: '1632428048355' //为了更新 js 缓存,可忽略
  });

  //加载模块
  layui.use(function(){ //亦可加载特定模块:layui.use(['layer', 'laydate', function(){
                        //得到各种内置组件
    var layer = layui.layer //弹层
            ,laypage = layui.laypage //分页
            ,laydate = layui.laydate //日期
            ,table = layui.table //表格
            ,carousel = layui.carousel //轮播
            ,upload = layui.upload //上传
            ,element = layui.element //元素操作
            ,slider = layui.slider //滑块
            ,dropdown = layui.dropdown //下拉菜单

    //向世界问个好
    layer.msg('Hello World');

    //监听Tab切换
    element.on('tab(demo)', function(data){
      layer.tips('切换了 '+ data.index +':'+ this.innerHTML, this, {
        tips: 1
      });
    });

    //执行一个 table 实例
    table.render({
      elem: '#demo'
      ,height: 420
      ,url: '/listDataByPage' //数据接口
      ,title: '用户表'
      ,page: true //开启分页
      ,toolbar: 'default' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
      ,totalRow: true //开启合计行
      ,cols: [ [ //表头
        {type: 'checkbox', fixed: 'left'}
        ,{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left', totalRowText: '合计:'}
        ,{field: 'name', title: '省份名称', width:80}
        ,{field: 'value', title: '确诊人数', width:80, sort: true}
        ,{fixed: 'right', width: 150, align:'center', toolbar: '#barDemo'}
      ] ]
    });

    //监听头工具栏事件
    table.on('toolbar(test)', function(obj){
      var checkStatus = table.checkStatus(obj.config.id)
              ,data = checkStatus.data; //获取选中的数据
      switch(obj.event){
        case 'add':
          layer.msg('添加');
          break;
        case 'update':
          if(data.length === 0){
            layer.msg('请选择一行');
          } else if(data.length > 1){
            layer.msg('只能同时编辑一个');
          } else {
            layer.alert('编辑 [id]:'+ checkStatus.data[0].id);
          }
          break;
        case 'delete':
          if(data.length === 0){
            layer.msg('请选择一行');
          } else {
            layer.msg('删除');
          }
          break;
      };
    });

    //监听行工具事件
    table.on('tool(test)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
      var data = obj.data //获得当前行数据
              ,layEvent = obj.event; //获得 lay-event 对应的值
      if(layEvent === 'detail'){
        layer.msg('查看操作');
      } else if(layEvent === 'more'){
        //下拉菜单
        dropdown.render({
          elem: this //触发事件的 DOM 对象
          ,show: true //外部事件触发即显示
          ,data: [{
            title: '编辑'
            ,id: 'edit'
          },{
            title: '删除'
            ,id: 'del'
          }]
          ,click: function(menudata){
            if(menudata.id === 'del'){
              layer.confirm('真的删除行么', function(index){
                obj.del(); //删除对应行(tr)的DOM结构
                layer.close(index);
                //向服务端发送删除指令
              });
            } else if(menudata.id === 'edit'){
              layer.msg('编辑操作,当前行 ID:'+ data.id);
            }
          }
          ,align: 'right' //右对齐弹出(v2.6.8 新增)
          ,style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
        })
      }
    });

    //执行一个轮播实例
    carousel.render({
      elem: '#test1'
      ,width: '100%' //设置容器宽度
      ,height: 200
      ,arrow: 'none' //不显示箭头
      ,anim: 'fade' //切换动画方式
    });

    //将日期直接嵌套在指定容器中
    var dateIns = laydate.render({
      elem: '#laydateDemo'
      ,position: 'static'
      ,calendar: true //是否开启公历重要节日
      ,mark: { //标记重要日子
        '0-10-14': '生日'
        ,'2020-01-18': '小年'
        ,'2020-01-24': '除夕'
        ,'2020-01-25': '春节'
        ,'2020-02-01': '上班'
      }
      ,done: function(value, date, endDate){
        if(date.year == 2017 && date.month == 11 && date.date == 30){
          dateIns.hint('一不小心就月底了呢');
        }
      }
      ,change: function(value, date, endDate){
        layer.msg(value)
      }
    });

    //分页
    laypage.render({
      elem: 'pageDemo' //分页容器的id
      ,count: 1000 //数据总数
      ,limit: 10 //每页显示的数据条数
      ,skin: '#1E9FFF' //自定义选中色值
      //,layout: ['prev', 'page', 'next', 'count', 'limit', 'refresh', 'skip'] //自定义排版
      ,jump: function(obj, first){
        if(!first){
          layer.msg('第'+ obj.curr +'页', {offset: 'b'});
        }
      }
    });

    //上传
    upload.render({
      elem: '#uploadDemo'
      ,url: '' //此处配置你自己的上传接口即可
      ,done: function(res){
        layer.msg('上传成功');
        layui.$('#uploadDemoView').removeClass('layui-hide').find('img').attr('src', res.files.file);
        console.log(res)
      }
      ,before: function(){
        layer.msg('上传中', {icon: 16, time: 0});
      }
    });
    //滑块
    var sliderInst = slider.render({
      elem: '#sliderDemo'
      ,input: true //输入框
    });

    //底部信息
    var footerTpl = lay('#footer')[0].innerHTML;
    lay('#footer').html(layui.laytpl(footerTpl).render({}))
            .removeClass('layui-hide');
  });
</script>
<script src="/res/static/tongji/baidu.js"></script>
</body>
</html>

这是commonmenu.html页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
</head>
<body>
<div th:fragment="menu" class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo layui-hide-xs layui-bg-black">中国疫情数据</div>
        <!-- 头部区域(可配合layui 已有的水平导航) -->
        <ul class="layui-nav layui-layout-left">
            <!-- 移动端显示 -->
            <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-header-event="menuLeft">
                <i class="layui-icon layui-icon-spread-left"></i>
            </li>

            <li class="layui-nav-item layui-hide-xs"><a href="">nav 1</a></li>
            <li class="layui-nav-item layui-hide-xs"><a href="">nav 2</a></li>
            <li class="layui-nav-item layui-hide-xs"><a href="">nav 3</a></li>
            <li class="layui-nav-item">
                <a href="javascript:;">nav groups</a>
                <dl class="layui-nav-child">
                    <dd><a href="">menu 11</a></dd>
                    <dd><a href="">menu 22</a></dd>
                    <dd><a href="">menu 33</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item layui-hide layui-show-md-inline-block">
                <a href="javascript:;">
                    <img src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg" class="layui-nav-img">
                    tester
                </a>
                <dl class="layui-nav-child">
                    <dd><a href="">Your Profile</a></dd>
                    <dd><a href="">Settings</a></dd>
                    <dd><a href="">Sign out</a></dd>
                </dl>
            </li>
            <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
                <a href="javascript:;">
                    <i class="layui-icon layui-icon-more-vertical"></i>
                </a>
            </li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree" lay-filter="test">
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="javascript:;">疫情数据可视化</a>
                    <dl class="layui-nav-child">
                        <dd><a href="/">疫情地图</a></dd>
                        <dd><a href="/toPie">疫情饼图</a></dd>
                        <dd><a href="/toBar">疫情柱状图</a></dd>
                        <dd><a href="/toLine">疫情折线图</a></dd>
                        <dd><a href="/toGlobal">全球疫情地图</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">疫情数据管理</a>
                    <dl class="layui-nav-child">
                        <dd><a href="/toChinaManager">中国疫情数据管理</a></dd>
                        <dd><a href="javascript:;">list 2</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item"><a href="javascript:;">click menu item</a></li>
                <li class="layui-nav-item"><a href="">the links</a></li>
            </ul>
        </div>
    </div>


    <div class="layui-footer">
        <!-- 底部固定区域 -->
        底部固定区域
    </div>
</div>
</body>
</html>

亲,你把代码贴出来吧

题主,这个问题我来替你解决,若有帮助,还望采纳,点击回答右侧采纳即可。

方法1:先clean清理一下maven的依赖包。
操作:添加maven helper插件后,右键→run maven→clean

img

方法2:
你所导入的包存在版本冲突问题。建议你排查下,我是建议直接将指定版本version去掉,系统会自动把兼容的包下载进来的

        <!--mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--引入jdbc stater 目的是使用JDBC模板接口-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <!--代码自动生成器配置-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.2.0</version>
        </dependency>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

请提供代码和 报错 ,复制出来

@Component注解检查一下

确定自己maven环境没问题。
把报错的类找出来,全局搜一下
应该可以看到有两个包有同一个类。
自行通过版本或者用的什么框架判断你要用的是哪个包。
把另一个排除掉。

还有一个可能性,就是这个项目打包了外部依赖,就是有个包没有用maven管理,可以在idea左边的lib里面把他减掉。有个减号按钮

https://blog.csdn.net/sinat_35752979/article/details/80605721

针对您提出的问题,提出以下三种解决方案,希望可以帮助您解决问题,如果对您有帮助,希望可以采纳,谢谢!
方案1:Spring Boot 项目启动时,如果出现 "A child container failed during start" 错误,一般是因为 Spring 容器启动时某些 Bean 初始化出错导致的。您可以按照以下步骤来定位和解决这个问题:
1.查看控制台输出,找到具体的错误信息。在控制台输出中,错误信息通常会以 "Caused by" 开头,后面紧跟着具体的错误信息和堆栈跟踪。
2.查看错误信息中涉及到的 Bean,找到对应的配置或实现类。根据错误信息中提供的信息,找到出错的 Bean 的名称或类型,然后查看对应的配置或实现类是否正确。常见的错误包括 Bean 的类型或名称错误、依赖注入错误等。
3.根据错误信息中提供的堆栈跟踪,确定具体的出错位置。在堆栈跟踪中,可以看到出错的方法、类和行号,根据这些信息可以定位到具体的出错位置,然后进行调试和修复。
4.在代码中加入日志输出,帮助定位错误。在 Spring Boot 项目中,可以通过使用 Logback、Log4j 等日志框架来输出日志,帮助定位错误。在需要输出日志的地方,可以通过获取 Logger 对象,然后调用其相应的输出方法来输出日志。例如:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyClass {
    private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

    public void myMethod() {
        logger.debug("Entering myMethod");
        // ...
        logger.debug("Exiting myMethod");
    }
}

在上面的代码中,使用了 SLF4J 日志框架,并定义了名为 "MyClass" 的 Logger 对象,然后在 myMethod 方法中输出了 "Entering myMethod" 和 "Exiting myMethod" 两条日志。

方案2:异常信息是caused by:org.apache.catalina.LifecycleException:Failed to start component [NonLoginAuthenticator[StandardEngine[Tomcat]]]该从哪里开始解决:
这个异常信息表明在启动 Tomcat 引擎时,其中一个组件 NonLoginAuthenticator 启动失败了。通常出现这种情况的原因有很多种,以下是一些可能的解决方案:
1.检查 Tomcat 版本是否与应用程序兼容。如果您的应用程序是基于旧版 Tomcat 开发的,而您正在尝试在新版 Tomcat 上运行它,则可能会出现这种问题。尝试在与应用程序兼容的 Tomcat 版本上重新运行应用程序,或升级应用程序以适应新版 Tomcat。
2.检查配置文件是否正确。某些情况下,可能会出现配置文件中的错误或不兼容,导致应用程序启动失败。请确保您的配置文件正确,并且与您的应用程序和 Tomcat 版本兼容。
3.检查应用程序中的依赖项。如果应用程序依赖于其他库或框架,并且其中一个依赖项出现问题,则可能会导致应用程序启动失败。请确保您的应用程序中的所有依赖项都正确,并且与您的应用程序和 Tomcat 版本兼容。
4.检查日志文件。Tomcat 启动失败后,通常会在日志文件中记录相关信息,例如更详细的异常堆栈跟踪、错误的配置项等等。请检查日志文件以获取更多信息,并尝试修复错误。
希望以上解决方案可以帮助您解决这个问题。如果问题仍然存在,请提供更多的错误信息和上下文,以便更好地理解问题并提供更准确的帮助。

方案3:Action:Correct the classpath of your application so that it contains compatible versions of the clases org.apache.catalina.authenticator.AuthenticatorBase ans javax.servlet.Servlet...
这个异常通常表示您的应用程序正在使用不兼容的 Tomcat 版本。错误消息建议您纠正应用程序的类路径,以包含兼容的版本的类 org.apache.catalina.authenticator.AuthenticatorBase 和 javax.servlet.Servlet。
尝试使用与您的 Tomcat 版本兼容的 org.apache.catalina.authenticator.AuthenticatorBase 和 javax.servlet.Servlet 版本,或使用与您的 org.apache.catalina.authenticator.AuthenticatorBase 和 javax.servlet.Servlet 版本兼容的 Tomcat 版本。
如果您正在使用 Maven 或 Gradle 等构建工具,则可以通过在构建文件中添加适当的依赖项来解决此问题。例如,在 Maven 中,您可以使用以下代码片段添加正确版本的 Servlet API 和 Tomcat:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>9.0.54</version>
    <scope>provided</scope>
</dependency>

注意 provided 作用域,它表示这些依赖项在运行时应由 Tomcat 提供,而不是在构建时打包到您的应用程序中。
如果您不使用构建工具,则需要手动将正确版本的 Servlet API 和 Tomcat JAR 文件添加到应用程序类路径中。请注意,这可能需要更改应用程序的启动脚本或命令行。

希望以上方法可以帮助您解决 Spring Boot 启动报错问题。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
根据报错信息,可以看出是因为存在重复的jar包依赖导致的冲突。具体来说,是 fastjson 和 jackson-databind 这两个jar包的版本冲突,建议将这两个依赖的版本进行调整。

可以尝试将 fastjson 的版本改为 1.2.73,jackson-databind 的版本改为 2.10.5.2。

<!-- fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.73</version>
</dependency>

<!-- jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.5.2</version>
</dependency>

同时,建议将其他相关依赖的版本也进行更新,保证相互间的兼容性。

如果还是存在问题,可以尝试使用 Maven Dependency Plugin 进行分析在编译时使用的jar包,或者使用 Maven Enforcer Plugin 进行强制使其使用相同的版本。

另外,可以检查一下项目代码是否存在其他不规范的写法,例如未关闭的连接等,也有可能导致一些问题的发生。

另外,建议将html文件中的相关路径改为相对路径,以免出现资源加载失败的问题。
如果我的回答解决了您的问题,请采纳!

看一下tomcat的版本