Почему servletContext.getRealPath возвращает null на tomcat 8?

У меня есть следующая строка кода:

servletContext.getRealPath("resources/images/video_icon.png")

Вэнь, я запускаю приложение, используя причал (используя плагин maven), это значение возвращаемого значения строки кода.

Когда я запускаю приложение с помощью tomcat 8 (на tomcat 7 он работает) - приложение возвращает null.

структура приложения:

введите описание изображения здесь

1.Как исправить это?
2. Почему это происходит?

Ответы

Ответ 1

после добавления / в начале пути он работает как в: jetty и tomcat 8

servletContext.getRealPath("/resources/images/video_icon.png")

Ответ 2

Он работает в Tomcat 7, поскольку предыдущие версии Tomcat разрешены без начального разделителя /, но Tomcat 8 требует включить / разделитель в начале.

Чтобы исправить это, просто добавьте /

servletContext.getRealPath("/resources/images/video_icon.png")

Ответ 3

Спасибо, ребята, за решение. Но может ли кто-нибудь сообщить мне, почему tomcat 8 сделал это. Возможно, была некоторая причина, если tomcat 8 обновился для работы следующим образом.

Пожалуйста, дайте мне знать, как эта вещь решает любую цель.