XML + запись в относительный путь

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

TempProj
!-js
!-jsp
!-WEB-INF
  !-classes
  !-lib

Внутри моей папки lib у меня есть java-файл, который создает XML-файл, мне действительно нужно, чтобы файл был сгенерирован внутри папки jsp.

Я создаю с помощью StreamResult result = new StreamResult("test.xml");

Я попытался дать следующие пути "../../jsp/text.xml". Поскольку я его развернул, путь должен быть относительным.

Любая помощь!!

1 ответ

Решение

Какой сервер приложений вы используете? Если вы используете Websphere (возможно, другие, но я не знаю), вам, возможно, придется установить "URL-адрес файла" и использовать JNDI, чтобы делегировать работу по поиску каталога самому серверу приложений.

В качестве эксперимента, чтобы пролить больше света на проблему, вы можете попробовать что-то вроде:

File nopath = new File("text.xml");
System.out.println(nopath.getCanonicalPath());

А также:

File relpath = new File("../../jsp/text.xml");
System.out.println(relpath.getCanonicalPath());

Интересно, сможете ли вы сделать это... У меня есть ощущение (и это все, пожалуйста, проверьте!), Что диспетчеру безопасности сервера приложений может не нравиться, что вы пытаетесь пройтись по каталогу и выйти из него.....

Возможно, вы захотите пересмотреть вопрос о том, чтобы не создавать файл на диске - вместо этого создайте новый сервлет, который динамически обслуживает XML...(при условии, что вам нужен клиент-браузер, чтобы в конечном итоге увидеть какой-то XML...).

Другие вопросы по тегам