我有一个maven项目,正在使用Eclipse IDE。 我试图将它部署到具有tomcat服务器的其他linux机器上,从eclipse导出.war文件并将其放到另一台机器上。
问题是,当我通过tomcat服务器执行(?)。war文件时,它会自动解压缩此文件并创建一个项目目录,但/src/main/resources
中的资源遍布var/lib/tomcat7/webapps/{project-root}/WEB-INF/classes
和我的加载某些文件的原始代码不再起作用
以下是示例。
String currentDir = System.getProperty("user.dir");
File mappingdir = new File(currentDir + "/src/main/resources/mapping");
File f = new File(mappingdir + "/a.csv");
结果
HTTP Status 500 - java.io.FileNotFoundException:
/var/lib/tomcat7/src/main/resources/mapping/a.csv (No such file or directory)
因为,此.csv文件不再存在。
它的位置是/var/lib/tomcat7/webapps/{project-root}/WEB-INF/classes/mapping/a.csv
在开发java独立代码时如何更改目录 - 如果我考虑将其部署到Web服务器?
我的问题与这个问题非常相关。 Read file from /src/main/resources/
答案 0 :(得分:0)
在java应用程序中将所有源文件放在/ WEB-INF / classes文件夹中。要从你应该使用的资源中读取文件
BufferedReader reader = new BufferedReader(
new InputStreamReader(getClass().getClassLoader().getResourceAsStream("mapping/a.csv")));
它也适用于独立的Java应用程序。