Tomcat中存在的过滤器不在Jetty中,如何让Jetty忽略它?

时间:2013-08-15 06:58:52

标签: java tomcat servlets jetty

我们有一个项目,我们在Tomcat和Jetty中运行。我在web.xml中添加了一个过滤器:

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>

CorsFilter类随Tomcat一起提供,但Jetty找不到它(因此无法启动)。

有什么方法可以让Jetty忽略这个声明吗?或者只使它适用于Tomcat?

1 个答案:

答案 0 :(得分:2)

显而易见的解决方案是从web.xml中删除它。毕竟这是部署描述符,它恰好用于自定义应用程序的部署。

如果你真的想要在两个服务器上部署一个单独的war文件而不被触及,那么你可以编写自己的过滤器,代表catalina CorsFilter可用,如果不可用则不做任何事情。

您可以通过执行Class.forName("org.apache.catalina.filters.CorsFilter")来测试过滤器是否可用,并查看是否出现异常。