2013-08-15 2 views
2

У нас есть проект, который мы запускаем как в Tomcat, так и в Jetty. Я добавил фильтр в моем web.xml: классФильтр, который существует в Tomcat, не в Jetty, как мне заставить Jetty игнорировать его?

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

CorsFilter поставляется с Tomcat, но Jetty не находит его (и, следовательно, не запускается).

Есть ли способ заставить Jetty игнорировать это заявление? Или сделать это применительно только к Tomcat?

ответ

2

Очевидным решением является удаление его из web.xml. В конце концов, это дескриптор развертывания, который существует именно для настройки развертывания приложения.

Если вы действительно хотите, чтобы на обоих серверах был разворачиван один файл войны, вы можете написать свой собственный фильтр, который делегирует каталину CorsFilter, и не делает ничего, если он недоступен.

Вы проверили бы, доступен ли фильтр, выполнив Class.forName("org.apache.catalina.filters.CorsFilter") и посмотрите, получилось ли исключение.

+0

Спасибо. Это в значительной степени то, что я закончил делать, я удалил его там, где он был, и поместил его в глобальный web-файл Tomcats через нашу процедуру развертывания. Этот параметр также может быть глобальным в нашем случае. – larspars

Смежные вопросы