У меня есть файл WAR, который определяет фильтр для запуска на всех URL-адресов:WebSphere 7.0 не будет работать фильтр для корневого URL
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
...
<filter>
<filter-name>OurRedirectServletFilter</filter-name>
<filter-class>com.mycompany.RedirectServletFilter</filter-class>
</filter>
...
<filter-mapping>
<filter-name>OurRedirectServletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Фильтр предназначен для выполнения некоторых переадресовывает от «удобных» URL в соответствующий «фактический» URL-адрес, но я не думаю, что это действительно актуально для проблемы.
В WebSphere 7.0 этот фильтр не запускается для запросов к корневому URL-адресу, например. /ctxroot
или /ctxroot/
; вместо этого я просто получаю ответ 404. Это делает пробег для /ctxroot/blah
, является ли blah
действительным или недействительным путем.
Я попытался добавить дополнительные сопоставления фильтров для шаблонов URL-адресов <url-pattern>/</url-pattern>
и <url-pattern></url-pattern>
, но я получаю такое же поведение.
Я тестировал на базе WAS 7.0.0.0 и применял последний пакет исправлений, то есть WAS 7.0.0.27.
Фильтр работает так, как ожидается, на WAS 8.5, и я уверен, что на WAS 8.0, а также на каждой версии WebLogic, JBoss и Tomcat, которые я пробовал. Это, кажется, ошибка с WAS 7.0, но я все равно хотел бы найти обходной путь. Кто-нибудь знает об одном?