2013-10-15 2 views
0

Я работаю над веб-приложением Java, которое должно хранить загруженные файлы в одном каталоге и встроенную базу данных Neo4j в другом каталоге. Я использую warfile для Tomcat для обслуживания приложения, и приложение должно быть запущено под Tomcat в Linux или Windows.Java webapp - где разместить файлы, созданные приложением?

Где именно я должен помещать эти два каталога в файловую систему хост-системы?

Я смущен, так как я привык хранить информацию в базах данных, указанных через URL, и т. Д. Спасибо за помощь.

+0

В конце концов я закончил тем, что приложение создает каталог для себя в/вар/Lib. –

ответ

1

Есть ли вероятность того, что у webapp есть два или более экземпляра, запущенных одновременно, скажем, в том же Tomcat с двумя/именами путей?

Java имеет системное свойство user.home Вы всегда можете создать подпапку на нем. Текущий пользователь - это сервер Tomcat. Свойства печати для sysout для целей отладки.

Чтение имени webapp во время выполнения вы можете использовать функцию servletContext.getRealPath ("/"). Вы получаете путь к имени файла $ tomcat/webapps/mywebapp и используете последнюю запись в папке. Определите ServletContextListener в web.xml, чтобы вы могли читать имя webapp при запуске.

Используйте соглашение об именах $ {user.home}/tomcat/$ {webappname}/ и сохраните любой файл, который вам нравится.

Или укажите переменную context-param Webapp в файле web.xml и дайте развертыванию создать соответствующую папку.

http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getInitParameter%28java.lang.String%29

Смежные вопросы