• 工作日记(六):完整项目开发之springboot无法启动的坑


    2020.7.14

    今天上午,一到公司,就开始研究springboot(或者应该叫springcloud?这两个启动类一样)项目无法启动的原因。

    问题:

    springboot项目跑不起来,还不报错,控制台只有debug与info标签,最后打印stopping service [Tomcat],退出参数有时候是0,有时候是1。

    解决方法:

    1.组长说他的项目能跑(他还没update),那就开始研究。

    2.首先,update后大部分人的项目都不能启动,组长自己发现,update项目后,删掉resources/mapping/xxxMapper.xml这类文件就行,有四个文件,是其它小组用mybatis generator自动生成的(这个锅是其它组的了);

    3.然而,我们删掉后,项目还是不能跑,springboot还是不报错,同时组长的update后仍能跑;

    4.接着,比较组长与本人的项目代码,排除掉无关文件,发现xxxcontroller.java这个文件,组长update的不彻底(他自己有修改);

    5.锁定了controller文件后,就开始检查代码,居然发现这其中有个样例方法的url与其它controller中的url相同;

    6.删除掉那个多余的样例方法(同时也删掉其它组的xml文件),项目终于能跑了。

    7.确认第二个锅谁背:当时这个controller是组长复制样例controller然后改的名字,在包含着同样的样例方法、同样的url的情况下就提交到SVN了;我们就在这个新的controller中增加自己负责的方法,完全没注意这个坑。结果就是所有update代码的同事都跑不了项目。(组长自己倒是后来删了样例方法,但是没提交,还研究了半天为啥别人的项目不能跑而自己的能跑)

    8.总结,第一个锅其它组背,mapper.xml有问题,可能是它们使用的mybatis generator的jar包版本与项目中jar包版本有冲突,生成的xml不能用(也可能是他们的cmd生成命令写错了?两个组是相同的错误也是稀奇),重新生成;第二个锅就分给组长了,controller中的url重复也会导致项目跑不起来,还不报错。

    后记:

    1.这次事故导致项目无法启动,三个小组都有锅;好在处于开发阶段,改正就行了(这点小事领导也不知道,应该)

    2.中午领导组织开会,为每个小组配置了2个前端同事,正在讨论统一使用的vue框架。

    3.下午继续开发工作,发现有人在某个mapper.xml中写了这句并commit了:

    resultMap="java.lang.Integer"

    然后就导致执行到访问数据库的语句时都报错500,位置是访问数据库的语句(项目倒是能起来)。

    由于没有报错到xml,因此定位这个错误也费了一些时间。

    正确的应该是:

    resultType="java.lang.Integer"

    改了就没问题了。

    4.发现如果想当敏捷开发的leader,需要会搭项目框架(加各种插件工具jar包配置文件),会分配任务子任务,管理项目进度,沟通各方资源......总之偏管理方向,但技术也要熟悉。

  • 相关阅读:
    线程私有关键字配合static使用
    对定义局部变量位置的思考
    获取文件的md5值
    JNI接口的整理
    数兔子问题
    使用XML布局文件和java代码混合控制UI界面
    应用程序类型
    android组成
    封装
    接口
  • 原文地址:https://www.cnblogs.com/codeToSuccess/p/13906233.html
Copyright © 2020-2023  润新知