2013-12-12 3 views
0

Что мне нужно, очень просто, но решения, размещенные здесь, не относятся к моему конкретному случаю. Кажется, что можно получить catalina.base и от этого угадать ваш каталог приложений, следуя /webapps/<application_name>.Как получить Путь приложения в Tomcat (не из контекста сервлета)

Как уже указывалось в заголовке вопроса, я не в контексте сервлета здесь, а в обычном классе.

Я думаю, что это работает в большинстве случаев в стандартной установке Tomcat. Но изнутри среды IDE, где все каталоги разделены (исходный код, сборка, база каталогов и т. Д.), На самом деле это не работает. Например, в NetBeans catalina.base НЕ является местом приложения.

Что я хочу, так это угадать каталог приложений, чтобы угадать, что это файлы журналов subdir. Поэтому в моей локальной среде (NetBeans) у меня есть/webapps/App/logs и где-нибудь еще, у меня также есть/webapps/App/logs.

То, что я не могу найти, - это верный способ получить «whatdir». Есть идеи?

+0

На боковой ноте. Я бы не поставил ваши журналы в каталог под приложением, если вы не хотите, чтобы они были общедоступными. –

+0

Я бы тоже. Но я должен, поскольку это стандарт для webapps здесь, и я действительно не говорю об этом. :( –

ответ

1

Попробуйте это:

  1. Определить сервлет, который загружает при запуске. В методе init() используйте метод «catalina.base» для получения каталога.
  2. После того, как вы получите каталог, сохраните значение в системном свойстве.
  3. Затем в коде без сервлета просто прочитайте системное свойство.
+0

Прохладная идея. Попробуем! :) –

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