Если юзер нажал Cancel download
В сервлете будет выброшено исключение org.apache.catalina.connector.ClientAbortException (при вызове ServletOutputStream.write(); )
Чтобы в лог не капали мусорные сообщения об этих исключениях:
} catch (org.apache.catalina.connector.ClientAbortException e) { // do nothing - client has cancelled the download } |
Либа, содержащая класс ClientAbortException – либо томкатовская catalina, либо джейбоссовский jbossweb.jar (в который эмбеддится каталина).
Судя по факу http://www.jboss.org/jbossweb/faq.html, в jbossweb используется tomcat версии 6.0.13+
Так как нам в этом случае совпадение версий некритично, мы можем использовать 6.0.13 (или jbossweb.jar в качестве compile-time-lib, если используется ant).
Мейвеновские координаты каталины:
<!-- JBoss Web is based on Tomcat 6.0.13 --> <!-- this dependency is only to catch org.apache.catalina.connector.ClientAbortException in file download servlets --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>catalina</artifactId> <version>6.0.13</version> <scope>provided</scope> </dependency> |
3