我们有一个在 Tomcat 和 Jetty 中运行的项目。我在 web.xml 中添加了一个过滤器:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
Tomcat 附带了 CorsFilter 类,但 Jetty 找不到它(因此无法启动)。
有什么办法可以让 Jetty 忽略这个声明吗?或者只适用于 Tomcat?
最佳答案
显而易见的解决方案是将其从 web.xml 中删除。毕竟,这是部署描述符,它的存在正是为了自定义应用程序的部署。
如果您确实希望在两台服务器上部署一个 war 文件而不被触及,那么您可以编写自己的过滤器,委托(delegate)给 catalina CorsFilter 可用,并且如果不可用则不执行任何操作。
您可以通过执行 Class.forName("org.apache.catalina.filters.CorsFilter")
来测试过滤器是否可用,并查看是否出现异常。
关于java - Tomcat 中存在的过滤器在 Jetty 中不存在,如何让 Jetty 忽略它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18247752/