【发布时间】:2012-07-09 05:59:33
【问题描述】:
基本上,我试图指向 WEB-INF 文件夹中的属性文件,这在我实际使用 servlet 时很容易,但我有几个普通的 Java 类,我需要指向相同的“相对”路径,我似乎无法找到任何方法。
通常这是我指向文件的方式:
InputStream in = getServletContext().getResourceAsStream("/WEB-INF/prop.properties");
【问题讨论】:
-
可能是
getClass().getClassLoader().getResourceAsStream()? -
刚试过。似乎也不起作用。 “in”仍然包含空值。我检查了
getClass().getClassLoader()包含的内容,如果有帮助,那就是"WebappClassLoader context: /IncTest delegate: false repositories: /WEB-INF/classes/ ----------> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@181a7dc "Dunno。 -
等一下——所以您正在使用servlet?我现在对您的要求感到困惑。您的类加载器是 Tomcat 中的
WebAppClassLoader。 -
不,这只是一个普通的 Java 类,它是 WebApp 的一部分,被用作一些自动化的后端维护工作。
-
在这种情况下,我发现@axtavt 的建议非常好。其他任何事情都只是黑客行为。我认为您需要在 servlet 之外从您的 WAR 中执行代码。
标签: java servlets path relative-path