При попытке доступа к компонентам из фильтров web-приложения может возникнуть исключение: “javax.servlet.ServletException: java.lang.IllegalStateException: No active event context”. Для того, чтобы гарантированно получить нужный компонент, код необходимо выполнить в ContextualHttpServletRequest:

@Override
public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain)
		throws IOException, ServletException {

	new ContextualHttpServletRequest((HttpServletRequest) request) {
		@Override
		public void process() throws Exception {
			...
			MyComponent component = (Component) Component.getInstance(MyComponent.class);
			...
		}
	}.run();
	chain.doFilter(request, response);
}

Связанные записи