在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

使用此处描述的属性文件的文件夹:

如何将外部资源(属性文件)添加到类路径以便战争可以读取?