java报错 Error starting Tomcat context. Exception: java.lang.IllegalArgumentException.

控制台提示的信息:Error starting Tomcat context. Exception: java.lang.IllegalArgumentException. Message:Unable to set initialisation parameters for filter due to null name and/or value. Name [], Value [null]

昨天在服务器上更新代码的时候,项目怎么都启不起来,一直在报上面这个错误。我百度了很久,都没有适用的方法,今天终于把问题找出来了,实际是引用的包中有个参数没配置好,在读取的时候被当作非法参数了,所以报错了。后来找对应的负责人补上以后就好了。

因为每个人的问题不一样,所以这里记录一下我是怎么找到这个问题的。

1、先在控制台里找到报错的那一行,如下图,因为我已经没有当时报错的那个截图了,所以这里模拟一下。找到[ERROR] ,根据[ERROR]后面的信息,我们可以知道问题是出在了org.springframework.boot.web.embedded.tomcat.TomcatStarter这个包里的第87行(我这里没写上去,但是正常的是有的,放心)

2、根据报名,找到这个类,如下图

3、断点打好以后,范围还是太广,这个时候怎么缩小范围呢?那就是使用F7、F8等跟进

4、就按3的示意图里这样一点一点的往里跟踪,合理结合F7、F8、F9,把断点打在各个可能出现的地方,细节代码跳过就行了,主要是找到底是在哪一步抛的异常。跟踪的过程是枯燥的,但是也是不能避免的。最后针对我这个问题,我找到了问题是出在 DynamicRegistrationBean.class里的configure方法里,更具体一点是configure里的

registration.setInitParameters(this.initParameters);

这一步。如下图:

 5、进入setInitParameters方法我们发现它也有3个实现类,那我这个问题是出在了第一实现类里,如下图:

6、继续进入5里的这个实现类,然后打好断点观察,最后终于找到了我这个问题的出处,如下图:

 

 如上图,我这里有个参数名为“”,值为null,这正好和控制台的提示信息Message:Unable to set initialisation parameters for filter due to null name and/or value. Name [], Value [null]符合,而恰恰这正是在这一步之后就抛异常了,所以可以断定就是这里的问题。根据其他几个参数(已马赛克)我大致知道是公司中台那边的代码出问题了,因为我们引用了他们的这个包。最后的确是他们的问题,他们修改以后,我们这边更新一下maven就好了

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值