java - ${catalina.base}/lib 子目录下的属性文件解析

标签 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");

类加载器实例是org.apache.catalina.loader.WebappClassLoader

根据Spring规范,location可以指定子目录(如classpath:/path/to/file)。为什么它在这里不起作用?

最佳答案

结果是 hosts 子目录缺少 +x 权限。

关于java - ${catalina.base}/lib 子目录下的属性文件解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35162436/

相关文章:

java - 我不想从 axboot 记录 jpa 查询

java - Apache CXF - 2Way SSL 服务器端 - 无 Spring

java - 如何在众多项目中指向我的项目中的一个 logback.xml 文件

Java邮件 : Runtime change of encodeParameters

java - 在运行时评估一系列 boolean 条件是否有效

java - Spring 是否生成验证代码?

java - 写JSP代码在tomcat服务器上运行时,没有任何显示

java - Eclipse Java 编辑器换行不符合预期

java - 如果我们知道它的一个变量或参数,如何访问对象?

java - 如何根据配置启用/禁用 Spring Memcache(Azure 或 AWS)