getServletContext().getRealPath() возвращает значение null в WebLogic

Когда строка ниже была выполнена

String realPath = request.getSession().getServletContext().getRealPath("");
String imagePath = realPath/images/product/abc.jpeg;
System.out.println("ImagePath-> " + imagePath)

Когда я пытаюсь распечатать строку sys out, я вижу, что realPath возвращает null в weblogic как null/images/product/abc.jpeg

Когда я ищу решение в Google. Я нашел два решения: -
1. Вручную я могу перейти в Консоль Weblogic -> Домены -> Веб-приложение -> Проверить заархивированный реальный путь (чего я не хочу делать)
2. Я могу добавьте приведенную ниже запись в weblogic.xml вручную

   <container-descriptor>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
    </container-descriptor>

который я добавил в weblogic.xml и попытался повторно развернуть, но все же realPath возвращает значение null после добавления в файлы xml.

Как только я пробую первый подход, изменяя настройки в консоли, я вижу, что realPath возвращает правильный путь. Но я не хочу, чтобы пользователь делал какие-либо изменения.

Есть ли какой-либо другой альтернативный способ, кроме двух вышеперечисленных, для weblogic, или, может быть, я что-то упускаю.


person Uday Konduru    schedule 26.09.2014    source источник
comment
Попробуйте getRealPath(/images/product/abc.jpeg).   -  person user207421    schedule 26.09.2014
comment
@EJP-- спасибо .. я попробую   -  person Uday Konduru    schedule 26.09.2014
comment
не угонять, а это общее решение? будет ли это работать на стеклянных рыбках?   -  person Thufir    schedule 09.02.2015


Ответы (1)


У меня это сработало на WLS12.1.3, используя ваш второй вариант. Оба метода задокументированы Oracle: Вызов ServletContext.getRealPath() в заархивированных веб-приложениях вызывает исключение NullPointerException (идентификатор документа 858783.1)

Основываясь на этой заметке, я боюсь, что третьего варианта нет.

person Mario.Cadiz    schedule 07.09.2016