【问题标题】:HOWTO use jetty-servlets' GZipFilter in Tomcat webapp如何在 Tomcat webapp 中使用 jetty-servlets 的 GZipFilter
【发布时间】:2014-03-31 19:13:13
【问题描述】:

我正在尝试使用jetty-servlets 库中提供的GZipFilter servlet。我的网络应用程序在 Tomcat 而不是 Jetty 上运行。我知道 Jetty 是另一个 servlet 引擎,但我应该能够使用单个组件。

我使用maven 来构建我的应用程序。每当我在 pom 中包含 jetty-servlets 时,我的 Web 应用程序都会拒绝启动,在 web.xml 中声明 GzipFilter 时失败。

报错如下,

Mar 31, 2014 3:03:32 PM org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter GzipFilter java.lang.NoClassDefFoundError: javax/servlet/AsyncListener at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493) at java.lang.Class.getConstructor0(Class.java:2803) at java.lang.Class.newInstance(Class.java:345) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)

我知道Jetty-Servlets对servlets-api有依赖,所以我把它从maven的依赖中排除了。

pom.xml 我的 sn-p 看起来像,

<dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlets</artifactId> <version>9.1.0.M0</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </exclusion> </exclusions> </dependency>

web.xml 我的 sn-p 看起来像,

<filter> <filter-name>GzipFilter</filter-name> <filter-class>org.eclipse.jetty.servlets.GzipFilter</filter-class> <init-param> <param-name>mimeTypes</param-name> <param-value>text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,image/svg+xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>GzipFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

【问题讨论】:

标签: java maven tomcat jetty servlet-filters


【解决方案1】:

缺少的javax.servlet.AsyncListener 类是Servlet Spec 3.0 的一部分,这是有道理的,因为Jetty 9.0.x follows that spec。 也许您使用的是旧版本的 Tomcat? Tomcat 版本 prior to 7.0.x 没有实现这一点,在这种情况下你会遇到问题。

另见this question

【讨论】:

  • 哦,好的。我确实在使用 Tomcat 6.0。那么有没有办法在 tomcat 6 中使用 jetty-servlet?
  • 您也许可以使用旧版本的 Jetty,例如 7.x。我从来没有尝试过。您报告的错误应该会消失,但您介意遇到另一个错误。
猜你喜欢
  • 2017-01-05
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 2015-07-01
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多