$ {catalina.base} / lib子目录

时间:2016-02-02 19:41:32

标签: java spring tomcat tomcat7

我有一个Tomcat 7(.0.42)实例,其中有lib / hosts目录(在$ {catalina.base}中更具体),具有多个特定于主机的属性(比如qa1.properties,qa2。属性等)。

尝试加载属性文件时,使用:

applicationContext.getResource("classpath:hosts/qa1.properties").exists()

失败,因为 exists()返回 false 。该文件显然位于 hosts 子目录中。如果文件被复制/移动到 lib 目录,它可以通过调用类似的代码正常工作:

applicationContext.getResource("classpath:qa1.properties").exists()

这里使用了Spring的实现类 ClassPathResource ,它调用了

return this.classLoader.getResource("hosts/qa1.properties");

和classloader实例是 org.apache.catalina.loader.WebappClassLoader

根据Spring规范,location可以指定子目录(例如 classpath:/ path / to / file )。怎么不在这里工作?

1 个答案:

答案 0 :(得分:0)

原来, hosts 子目录缺少+ x权限。