部署到tomcat

时间:2016-07-11 13:54:46

标签: java maven resources tomcat8

我有两个maven项目:

  1. 从其代码
  2. 访问资源文件的JAR
  3. 具有使用JAR的RESTful服务的WAR
  4. 当JAR单元测试运行时,它能够访问资源文件。

    部署到tomcat后,使用FileNotFoundException

    访问资源文件失败

    我试过这两行,但结果相同:

    File file = new File(getClass().getClassLoader().getResource("file.xml").getFile());
    

    File file = new File(getClass().getResource("/file.xml").getFile());
    

    调试时,我发现file的值如下:

    file:/usr/share/tomcat8/webapps/ROOT/WEB-INF/lib/com.projectgroup.projectname-1.0-SNAPSHOT.jar!/file.xml
    

    我在该位置打开了JAR,并在那里找到了该文件。所以不知道为什么会这样。

2 个答案:

答案 0 :(得分:1)

尝试使用getResourceAsStream()代替resource.getFile()

在类路径中加载xml文件的另一种方法是使用Spring Framework,如下所示:

PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
resolver.getResources("classpath*:your/package/**/file.xml");

答案 1 :(得分:0)

您的文件必须位于war文件的classpath中,是否在构建过程中被打包到war中?