我在我的tomcat服务器上部署了一个web应用程序。我的文件夹结构是TOMCAT_HOME/webapps/segnalazioni_degrado/config.
config文件夹包含一些属性文件。当我在开发模式(Eclipse)中运行我的应用程序时,一切正常工作,但是由于我将它部署在Tomcat上,所以我得到了文件创建的异常。这就是我在服务器上加载.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");
[...]我做错了什么吗?
发布于 2013-09-09 10:37:58
每个webapp都有自己的tomcat类加载程序。ClassLoader.getSystemResource将使用用于加载引导程序和tomcat应用程序的系统类加载器。但是,系统类装入器不知道任何关于您的and应用程序的信息,而且它是类路径。使用正确的类加载程序是必不可少的。
访问正确的类加载程序有很多解决方案。一种解决方案是使用ClassLoader#getResource。
请查一下这个例子
发布于 2013-09-09 10:32:17
我做错了什么吗?
很明显是的。如果一切顺利,你就不会有例外。
您应该将该资源作为流从类路径加载。
这意味着你的战争应该是这样的:
WEB-INF/classes/config/DBconfig.properties由于您正在使用Tomcat,我建议您学习如何设置JNDI数据源连接池。以这种方式将数据库连接信息外部化。
https://stackoverflow.com/questions/18696196
复制相似问题