абсолютный путь каталога веб-приложений tomcat? - PullRequest
3 голосов
/ 05 августа 2009

У меня есть tomcat extract в одном месте, а мой каталог webapps может быть где-то еще. Тогда как получить абсолютный путь моего веб-приложения? , У меня есть программа обработки файлов внутри веб-приложений, и я хочу найти абсолютный путь к моим веб-приложениям или каталогу приложений (начиная с c: / или / home / use / ../../webapp/mywebapplication и т. Д.). Дело в том, что я не могу контролировать, кто / где будет развертывать мое приложение?

Ответы [ 2 ]

8 голосов
/ 05 августа 2009
2 голосов
/ 04 ноября 2012

см. GetServletContext (). GetRealPath ("") - этот способ не будет работать, если контент доступен из архива .war.

В некоторых случаях мы можем использовать другой способ получить реальный путь. Это пример получения пути к файлу свойств C: / Program Files / Tomcat 6 / webapps / myapp / WEB-INF / classes / somefile.properties:

// URL returned "/C:/Program%20Files/Tomcat%206.0/webapps/myapp/WEB-INF/classes/"
URL r = this.getClass().getResource("/");

// path decoded "/C:/Program Files/Tomcat 6.0/webapps/myapp/WEB-INF/classes/"
String decoded = URLDecoder.decode(r.getFile(), "UTF-8");

if (decoded.startsWith("/")) {
    // path "C:/Program Files/Tomcat 6.0/webapps/myapp/WEB-INF/classes/"
    decoded = decoded.replaceFirst("/", "");
}
File f = new File(decoded, "somefile.properties");
...