如何从java中的Web服务获取属性文件的上下文路径?
我正在尝试从应用程序读取属性文件的上下文路径如何从java中的Web服务获取属性文件的上下文路径?,java,web-services,file,contextpath,Java,Web Services,File,Contextpath,我正在尝试从应用程序读取属性文件的上下文路径 properties.load(this.getClass().getResourceAsStream(path)); import java.util.Properties; public class test1 { public String getValues() { PropertiesFileReader fileReader = new PropertiesFileReader();
properties.load(this.getClass().getResourceAsStream(path));
import java.util.Properties;
public class test1 {
public String getValues()
{
PropertiesFileReader fileReader = new PropertiesFileReader();
Properties prop = fileReader.getProp("/messages/AttachFile.properties");
String out = prop.getProperty("FILE_NAME");
return out;
}
}
当属性文件位于WEB-INF->classes->messages->myfile
但是当我把这个文件移到其他文件夹,比如WEB-INF->messages->myfile
时,它似乎没有得到路径
编辑:我没有使用servlet…您只需预先添加
/WEB-INF/
:
"/WEB-INF/messages/myfile";
If失败,因为新路径不是类路径的一部分,而
Class\getResourceAsStream()
从类路径加载资源。默认情况下,/WEB-INF/classes
是Servlet API规范中指定的类路径的一部分,这就是它工作的原因。我建议将其保留在类路径中,或者将新路径/WEB-INF/resources
添加到类路径中
如果您使用的是像Eclipse这样的IDE,那么可以通过将其作为源文件夹添加到项目的构建路径中来实现(这将在构建过程中将其移回
/WEB-INF/classes
)。或者,您也可以在Java源根目录中创建一个resources
包,然后将文件放在那里。它也将成为类路径的一部分。当你说你没有使用servlet时,你是什么意思?此代码如何运行?基本上,当您使用servlet时,只有WEB-INF/classes和WEB-INF/lib在类路径上。因此,您无法使用类加载器访问资源。但是您可以使用ServletContext访问它们。因此,假设您的代码在Servlet/JSP中运行,您可以执行以下操作:
getServletContext().getResourceAsStream("your resource starting from web-application root");
我希望它没有servlet上下文,因为我没有使用servletswell,我建议您使用Maven和Maven资源插件Mebbe,这只是一个类路径问题。尝试在类路径中添加其他文件夹,并查看其alright@govi不,它不能让我到那里。。。有什么想法吗