我在 %TOMCAT_HOME% 中为静态资源(*.xml、*.properties 等)创建了文件夹resources。
我的应用程序 (app1) 的部署在 %TOMCAT_HOME%/resources 文件夹 app1-resources 中创建,其中包含我的 app1 自己的文件 *.xml、*.properties...。
在 %TOMCAT_HOME%/conf/catalina.properties 我添加了:
shared.loader=${catalina.base}/resources
但是当我使用类路径访问任何文件时:
(...)
<value>classpath:app1-resources/conf.properties</value>
(...)
或者:
(...)
@ImportResource("classpath:app1-resources/spring-config.xml")
(...)
失败了!!!因为没有找到资源...
如果我将配置更改为:
shared.loader=${catalina.base}/resources/app1-resources
并将访问权限更改为:
(...)
<value>classpath:conf.properties</value>
(...)
或者:
(...)
@ImportResource("classpath:spring-config.xml")
(...)
有效。
我的问题是,如果我在同一个 tomcat 中部署多个应用程序,我想独立访问每个应用程序的资源。例如:
应用程序 1:
- 在 java 中:classpath:app1-resources/config.xml
- 我为我的 app1 的资源创建了一个文件夹:%TOMCAT_HOME%/resources/app1-resources/config.xml
应用程序 2:
- 在 java 中:classpath:app2-resources/config.xml
- 我为我的 app2 的资源创建了一个文件夹:%TOMCAT_HOME%/resources/app2-resources/config.xml
我的问题是:我可以指定我的资源位于其下的根目录(在每个应用程序的自定义文件夹中)吗?
谁能解决我的问题?
提前致谢。
最佳答案
在 /conf/catalina.properties
的 shared.loader
或 common.loader
属性中指定。
关于java - 将带有每个应用程序资源子文件夹的外部根文件夹添加到 tomcat(类路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31454689/