Почему делает getRealPath (), возвращают пустой указатель при развертывании с .war файлом? [дубликат]

cout << "Enter the number: ";
int number;
cin >> number;

cout << "Enter names: ";
string names;
getline(cin, names);//works on the \n left behind
getline(cin, names);//continues and rewrites names

его довольно самообучающийся, в потоке, который используется cin >> number, есть\n, который присваивается именам при первом использовании. Повторное использование getline теперь записывает правильное значение.

28
задан Georg Schölly 12 February 2009 в 09:38
поделиться

4 ответа

Для запуска удерживается от использования ServletRequest.getRealPath (Строковый путь) . Соответствующая замена:

ServletContext context = session.getServletContext();
String realContextPath = context.getRealPath(request.getContextPath());

Однако документы API для ServletContext.getRealPath (Строковый путь) состояние:

"Этот метод возвраты null, если контейнер сервлета не может перевести виртуальный тракт в реальный путь ни по какой причине (такой как тогда, когда содержание делается доступным из архива .war)".

, Таким образом, API выполняет свой контракт! Однако не все потеряно, поскольку можно загрузить ресурс из ВОЙНЫ с помощью следующего метода, как определено в ServletContext:

ServletContext context = session.getServletContext();
InputStream is = context.getResourceAsStream("generate.xml");
36
ответ дан 3 revs 14 October 2019 в 10:17
поделиться

Используете ли вы Weblogic?

Если да, то это проблема Weblogic, которую вы можете исправить в консоли администратора Weblogic. 112]

См .: http://ananthkannan.blogspot.com/2009/12/servletcontextgetrealpath-returns-null.html

6
ответ дан user2094587 14 October 2019 в 10:17
поделиться

Я не верю, что можно делать то, что ты пытаешься сделать.

Вы должны использовать getResource для чтения XML-файла из вашего военного файла (это также работает без войны)

servletContext.getResourceAsStream("/generate.xml")

Начальная косая черта зависит от того, где хранится файл generate.xml.

2
ответ дан krosenvold 14 October 2019 в 10:17
поделиться

Следующее исправление работает хорошо для меня.

// I am using Struts2 
ServletContext sc = (ServletContext) ac.get(StrutsStatics.SERVLET_CONTEXT);
fileInputStream = sc.getResourceAsStream("test.xls");

После развертывания файла war я могу получить файл из контекстного пути.

0
ответ дан Aleksandr M 14 October 2019 в 10:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: