【发布时间】:2021-08-25 02:37:38
【问题描述】:
我的项目正在使用spring boot 和webflux、tomcat。
我有一个内部库类,它是 ServletContextListener
@WebListener
public class DevIoServletContextListener implements ServletContextListener {
@Inject
private DevIoInjector injector;
public DevIoServletContextListener() {
}
public void contextInitialized(ServletContextEvent event) {
this.injector.inject();
}
public void contextDestroyed(ServletContextEvent event) {
}
}
这个内部类在方法contextInitialized内部抛出异常:
[ERROR ] SRVE0283E: Exception caught while initializing context: java.lang.NullPointerException
at br.com.dev.lib.DevIoServletContextListener.contextInitialized(DevIoServletContextListener.java:33)
这个类对我的开发并不重要。我想忽略或禁用这个监听器,可以吗?
我不会在此侦听器中进行更改,因为它是来自库的内部类。
我将不胜感激。
我尝试在我的包中添加 @ServletComponentScan("br.com.dev.bit.io") 仅在主类中,但没有奏效。
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("br.com.dev.bit.io")
@ServletComponentScan("br.com.dev.bit.io")
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
【问题讨论】:
-
DevIoServletContextListener是否包含在 JAR 文件或WEB-INF/classes目录中? servlet 容器应该扫描后者的注释,而不是前者。 -
Prior P. Karwasz 是一个 JAVA 文件。
标签: java spring-boot tomcat spring-webflux servletcontextlistener