我有一个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 )。怎么不在这里工作?
答案 0 :(得分:0)
原来, hosts 子目录缺少+ x权限。