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

标签 java tomcat servlets jetty

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

相关文章:

java - 在 JUnit Test 子类中引用 protected 变量时获取 NullPointerException

java - JVM 1.8下远程调试java web start

session - HttpSessionBindingListener 和 HttpSessionAttributeListener 的实际用法

java - 变量的默认下拉值

java - 莲花多米诺 9 : Unable to register user without creating ID file using Java client API

Tomcat Hot Deplot 适用于 JSP 文件但不适用于 Java 文件

apache tomcat catalina 作为 CORS 过滤器的 Maven 依赖项

tomcat - 无法在我自己的 PC 之外访问 tomcat

java - 如何将 mx4j httpadaptor 集成到 servlet 中,以便无需使用 ip 和端口启动另一台服务器?

java - Cookie http 仅适用于 spring security 和 servlet 2.5?