Tomcat - FileNotFoundException

时间:2013-09-09 10:27:40

标签: java eclipse tomcat filenotfoundexception

我在tomcat服务器上部署了一个Web应用程序。 我的文件夹结构是TOMCAT_HOME / webapps / segnalazioni_degrado / config。

config文件夹包含一些属性文件。 当我在开发模式(Eclipse)中运行我的应用程序时,一切正常,但是因为我在Tomcat上部署它,我得到了filenotfound异常。 这是我在服务器上加载.properties文件的方式:

[...]
Properties props = new Properties();
    try {
        props.load(new FileInputStream("config/DBconfig.properties"));

    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
    url = props.getProperty("url");
    user = props.getProperty("user");
    password = props.getProperty("password");
[...]

我做错了吗?

2 个答案:

答案 0 :(得分:2)

每个webapp在tomcat中都有自己的类加载器。 ClassLoader.getSystemResource将使用用于加载引导程序和tomcat应用程序的系统类加载器。但系统类加载器对您的webapp及其类路径一无所知。使用正确的类加载器是必不可少的 有很多解决方案可以访问正确的类加载器。一种解决方案是使用ClassLoader#getResource

请查看this example

答案 1 :(得分:1)

  

我做错了吗?

显然,是的。如果一切顺利,你就不会得到例外。

您应该将该资源作为来自类路径的流加载。

这意味着您的WAR应如下所示:

WEB-INF/classes/config/DBconfig.properties

由于您使用的是Tomcat,我建议您学习如何设置JNDI数据源连接池。以这种方式外部化您的数据库连接信息。