- 背景分析
- 启动时会加载类到容器中
- 类中自动注入其他类
- 两种启动方式的差异是idea自己已包含tomcat,所以会避免注入失败引起的空指针问题
- 现象
- tomcat启动简要日志
- springboot this web application instance has been stopped already. Could not load...
- tomcat启动简要日志
- tomcat启动时,启动日志无法直观看到具体报错地址,停掉tomcat,查看logs/localhost.年-月-日.log,可已看到具体日志信息
- 08-Apr-2020 16:02:58.124 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class cn.com.cintel.eipp_nxweb.common.socket.SocketListener
java.lang.NullPointerException
at cn.com.cintel.eipp_nxweb.common.socket.SocketListener.contextInitialized(SocketListener.java:31)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4900)
- 08-Apr-2020 16:02:58.124 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class cn.com.cintel.eipp_nxweb.common.socket.SocketListener
- 问题代码
-
@WebListener public class SocketListener implements ServletContextListener { @Autowired ISocketService socketService; @Override public void contextInitialized(ServletContextEvent sce) { //new ServerNet(Integer.parseInt("4420")).start(); new Thread(new ShortMessageServer(Integer.parseInt("5560"))).start(); socketService.moblieAlarmSocket(); }
-
- 解决方案 2种
-
if(socketService==null){ ServletContext servletContext = sce.getServletContext(); ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext); // socketService= (ISocketService) ctx.getBean("socketService"); socketService= (ISocketService) ctx.getBean(ISocketService.class); } socketService.moblieAlarmSocket();
-
SpringContextUtil.getBean(ISocketService.class).moblieAlarmSocket();
@Component @Order(value = 1) public class ScheduleJobInitListener implements CommandLineRunner { @Autowired StatisticalService statisticalService; @Override public void run(String... arg0) throws Exception { try { statisticalService.initSchedule(); } catch (Exception e) { e.printStackTrace(); } } }
-
springboot项目在idea中启动正常,打war包在tomcat启动报错
最新推荐文章于 2023-08-08 10:51:33 发布