将Java独立程序部署到Tomcat服务器时的目录配置

时间:2016-01-13 07:35:27

标签: java eclipse maven tomcat directory

我有一个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/

1 个答案:

答案 0 :(得分:0)

在java应用程序中将所有源文件放在/ WEB-INF / classes文件夹中。要从你应该使用的资源中读取文件

BufferedReader reader = new BufferedReader(
                new InputStreamReader(getClass().getClassLoader().getResourceAsStream("mapping/a.csv")));

它也适用于独立的Java应用程序。