1 JDK1.8 ,springboot.2.3.x,增加了一个过滤器,tomcat启动报如下错误,通过以下错误去直接分析是找不到原因的,问题不在这些上面;
2 通过分析日志,发现出现了两种日志格式,下边的日志格式比较清楚,上边的看不出来问题,一个是应用自己控制点日志,一个是系统产生的。那把上方日志打印出来方能将真正问题暴露出来。
在tomcat webapps/ROOT/WEB-INF/classes目录下新增 logging.properties:
并填入以下内容:
org.apache.catalina.core.ContainerBase.[Catalina].level=INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers=java.util.logging.ConsoleHandler
重新启动应用,此时问题暴露出来了。自定义的filter引起的错误,但是本地开发环境却没有问题。
经过分析查找,发现自定义fitler中仅实现了 filter接口的 doFilter方法,而在java8中init ,destroy也是必须实现的,可以空实现。jdk9则可以不用实现这两个接口。改造以后系统启动即恢复正常。
经过分析查找资料,发现自定义fitler中仅实现了 filter接口的 doFilter方法,而在java8中init ,destroy也是必须实现的,可以空实现。jdk9则可以不用实现这两个接口。改造以后系统启动即恢复正常。