天坑天坑天坑
好久没把springboot 项目打成war包部署到tomcat了。这次是踩大坑了
tomcat启动成功,其他项目访问正常,当前项目404
看日志,有个毛啊(也不是没有)只是没注意这个东西
07-Jan-2022 18:01:42.369 严重 [main] org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到
07-Jan-2022 18:01:42.369 严重 [main] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[***]启动失败
代码写法的问题,使用的构造函数注入。导致filter启动失败
用@Autowired注入的应该会报null,启动会成功而我一直以为启动成功了(手动流泪)
换种写法吧
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
HttpServletResponse res = (HttpServletResponse) servletResponse;
//发布tomcat 注入不进来 代码里面处理
if(jwtConfig == null){
WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(req.getServletContext());
JwtConfig bean = applicationContext.getBean(JwtConfig.class);
jwtConfig =bean;
}
}