Доступ к компонентам Seam из фильтров
При попытке доступа к компонентам Seam из фильтров 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);
}
Связанные записи
Приложение [...]
