2

我们有一个在 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?

4

1 回答 1

2

显而易见的解决方案是将其从 web.xml 中删除。毕竟这是部署描述符,它的存在正是为了自定义应用程序的部署。

如果您真的想在两台服务器上部署一个单一的战争文件而不被触及,那么您可以编写自己的过滤器,委托给 catalina CorsFilter 可用,如果不可用则不做任何事情。

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

于 2013-08-15T07:24:51.843 回答