我们有一个项目,我们在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?
答案 0 :(得分:2)
显而易见的解决方案是从web.xml中删除它。毕竟这是部署描述符,它恰好用于自定义应用程序的部署。
如果你真的想要在两个服务器上部署一个单独的war文件而不被触及,那么你可以编写自己的过滤器,代表catalina CorsFilter可用,如果不可用则不做任何事情。
您可以通过执行Class.forName("org.apache.catalina.filters.CorsFilter")
来测试过滤器是否可用,并查看是否出现异常。