Я использую библиотеку UrlRewriteFilter, чтобы избежать необходимости писать свой собственный URL-фильтр.
Я почти уверен, что у меня все настроено правильно, потому что, когда у меня есть это в моем URL, переписать xml:
<rule>
<from>^/urlIWantToMap</from>
<to type="redirect">/WhereIWouldLikeItToGo</to>
</rule>
Кажется, все работает нормально (например, нажатие http://localhost:8080/urlIWantToMap отправляет меня в нужное место). Обратите внимание, что мне пришлось добавить отображение сервлета в мой файл web.xml.
Если я попробую это, хотя ...
<rule>
<from>^/urlIWantToMap</from>
<run class="mypackage.MyServletClass" method="doGet"/>
</rule>
Я получаю http 404. Я думаю, что это та же самая проблема, описанная здесь (хотя я с подозрением отношусь к решению / решению, к которому приходит автор):
http://greatwebguy.com/programming/java/urlrewritefilter-servlet-filter-problem-in-websphere-6105-and-greater/
Я вижу, как это происходит, если произошли какие-то изменения в поведении веб-фильтра, которые не позволили бы UrlRewriteFilter вызывать сервлет. Либо, что; или я совершаю вопиющую ошибку, которую не вижу.