Как получить запросы на сервлет, реализующий интерфейс CometProcessor, для прохождения через фильтр

У меня есть сервлет, реализующий CometProcessor и Я пытаюсь заставить запросы, поступающие на этот сервлет, проходить через фильтр. Указание сервлета в файле web.xml не приводит к тому, что запросы к сервлету проходят через фильтр. Я также попытался реализовать CometFilter и указал сервлет, реализующий CometProcessor, в файле web.xml в разделе . Я получаю следующую ошибку -

Jan 29, 2013 12:10:04 PM org.apache.catalina.connector.CoyoteAdapter service - SEVERE: An exception or error occurred in the container during the request processing
java.lang.NullPointerException
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:430)
    at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:396)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:356)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1534)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

person user2020498    schedule 29.01.2013    source источник
comment
показать строки, где yeW получают ошибки, например, CoyoteAdapter.java:430   -  person vicky    schedule 29.01.2013
comment
@vicky CoyoteAdapter — это стандартный класс Tomcat docjar. com/html/api/org/apache/catalina/connector/   -  person Taky    schedule 29.01.2013
comment
Самый простой способ - прикрепить исходники к вашей IDE и отладить запрос. Кажется, проблема в некоторой логике, связанной с Commet в методе service().   -  person Taky    schedule 29.01.2013
comment
Покажите пожалуйста код реализации CommetProcessor.   -  person Taky    schedule 29.01.2013
comment
Код CometProcessor находится точно в тех же строках, что и пример чата в tomcat.apache.org/tomcat-6.0-doc/aio.html. .getMappingData().context).logAccess(запрос, ответ, System.currentTimeMillis() - req.getStartTime(), false); request.getMappingData().context имеет значение null.   -  person user2020498    schedule 29.01.2013


Ответы (1)


Спасибо за ваш вклад, я понял, где я ошибаюсь. Я допустил ошибку при реализации CometFilter. Я прочитал документацию, представленную в самом классе CometFilter, и обнаружил, что мне нужно реализовать метод doFilterEvent, а не метод doFilter. Теперь он работает нормально, и запросы к сервлету, реализующему CometProcessor, передаются этому фильтру.

person user2020498    schedule 06.02.2013