Вызов requestdispatcher.forward() to resource under "/WEB-INF " не работает в WebSphere
В одном из моих сервлетов я вызываю RequestDispatcher.forward()
вызов статического ресурса где-то в папке WEB-INF:
request
.getRequestDispatcher( "/WEB-INF/some/path/image.gif" )
.forward( request, response );
Переход к этому сервлету прекрасно работает под Tomcat, Jetty et al., но не работает в WebSphere 7. Ошибка, которую я получаю (как в браузере, так и в журналах сервера), является
Error 403: SRVE0190E: File not found: /WEB-INF/some/path/image.gif
Изначально я предполагал, что WebSphere может нуждаться в какой-то определенной конфигурации, чтобы разрешить внутреннюю переадресацию к ресурсам под WEB-INF, но мне не удалось найти ничего полезного.
Есть идеи, почему может ли такое случиться?
Заранее спасибо!
2 ответа:
Оказывается, что для того, чтобы сделать WEB-INF доступным для сервлетов в WebSphere, необходимо задать свойству
exposeWebInfOnDispatch
значениеtrue
. Я получил этот ответ от WebSphere forum .
В консоли администрирования WebSphere 7,
- перейдите в раздел "серверы" = > "типы серверов" = > " серверы приложений WebSphere" слева
- выберите нужный сервер в списке в главной части страницы
- нажмите на "Настройки контейнера" = > "настройки веб-контейнера" => "Сеть контейнер "
- перейдите в раздел "пользовательские свойства" справа
Добавить новое свойство:
- имя:
exposeWebInfOnDispatch
- значение:
true