在Tomcat 8中将外部资源添加到类路径
我有一个Tomcat应用程序,需要引用应用程序外部的一些属性文件。 通常这些存储在C:\PROJECT_NAME\conf\
等特定位置的本地计算机上。
在Tomcat 7中,这可以通过在/META-INF/
放置一个context.xml
文件来实现,该文件使用VirtualWebappLoader
实际上将此位置添加到应用程序类路径,如下所示:
如何在Tomcat 8中实现同样的function?
Tomcat 8迁移指南中有一节介绍了这一点,它将指导您使用资源配置
特别是,您将创建一个WebResourceRoot对象,该对象在其描述中包含以下文本。
VirtualWebappLoader – 由映射到WEB-INF / lib和WEB-INF / classes的资源前后资源替换
您的新context.xml将如下所示:
再举一个例子:
请注意里面的注释并注意我使用PostResources
而不是PreResources
这样我就可以覆盖当前项目中的类,如果我对我的“util”实现不满意的话。 我不确定JarResource
是被视为“PostResource”还是“PreResource”,但是重写静态内容和类是否有效。
只需将属性文件复制到Tomcat lib文件夹即可。
或者增强conf / catalina.properties:common.loader
使用此处描述的属性文件的文件夹:
如何将外部资源(属性文件)添加到类路径以便战争可以读取?