我有一个可以从普通的servlet线程或Quartz作业执行的代码。代码基本上是错误记录器,我想添加请求信息(如果可用于日志消息)。问题是当从计划任务执行的代码显然没有可用的请求时,这很好。请求信息来自注入实例(CDI),下面使用注入的servlet请求实例。
@Inject
private HttpServletRequest servletRequest;
尝试从在servlet外部运行的线程注入HttpServletRequest导致org.jboss.weld.exceptions.IllegalStateException: WELD-000710: Cannot inject HttpServletRequest outside of a Servlet request
我的问题如何检测当前线程是否在servlet上下文中运行,并避免尝试注入请求对象。