我创建了一个jar
从我的Java project
并想在一个JSP Servlet Project
。我正在尝试加载一个属性文件,比如说我的sample.propertiesJSP Servlet Project
保存在WEB/properties/sample.properties
应该由以下班级阅读jar
.我正在使用在 jar 类中编写的以下代码来访问它。
Properties prop=new Properties();
prop.load(/WEB-INF/properties/sample.properties);
但每次我得到fileNotFound exception
.
请建议我解决方案。
这是结构
WEB-INF
|
lib
|
myproject.jar
|
myclass (This class needs to read sample.properties)
|
properties
|sample.properties
The /WEB-INF
文件夹是not类路径的一部分。所以这里的任何答案都是轻率的建议ClassLoader#getResourceAsStream() http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResourceAsStream%28java.lang.String%29 will never工作。仅当属性文件放置在/WEB-INF/classes
它确实是类路径的一部分(在像 Eclipse 这样的 IDE 中,只需将其放在 Java 源文件夹根目录中就足够了)。
如果属性文件确实存在于您想要保存的位置,那么您应该通过以下方式将其作为 Web 内容资源获取:ServletContext#getResourceAsStream() http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getResourceAsStream%28java.lang.String%29反而。
假设你在一个HttpServlet
,这应该做:
properties.load(getServletContext().getResourceAsStream("/WEB-INF/properties/sample.properties"));
(the getServletContext()
继承自servlet超类,不需要自己实现;所以代码是原样的)
但如果该类本身不是一个HttpServlet
无论如何,那么您确实需要将属性文件移动到类路径中。
也可以看看:
- 在基于 servlet 的应用程序中,配置资源文件应该放在哪里以及如何读取? https://stackoverflow.com/questions/2161054/where-to-place-configuration-properties-files-in-a-jsp-servlet-web-application/2161583#2161583
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)