Muh*_*ana 2 java tomcat classpath properties-file
最近我将核心servlet应用程序的核心功能分成了一个jar文件.此jar文件现在部署在tomcat的lib文件夹中,应用程序(即servlets,jsps,properties files..etc)作为war文件独立部署.
jar文件需要特定的属性文件.我将这些属性文件放在war文件中的"src"文件夹下(即类层次结构的顶部).
在过去,当所有东西都在同一个项目中并部署在一个war文件中时.相关类可以访问属性文件.现在,当这些类部署在jar中时,它们无法看到war文件中的属性文件(即已部署的Web应用程序).
我在这里可以缺少什么?我如何加载proeprties文件的示例:
properties.load(getClass().getResourceAsStream("/appconfig.properties"));
Run Code Online (Sandbox Code Playgroud)
感谢您的时间.
你不应该通过类自己的类加载器来获取它.由于该类现在由Tomcat管理,它只知道Tomcat的内部资源,而不是关于特定于webapp的资源.你应该通过当前线程的上下文类加载器来获取它.该类加载器了解专用于当前webapp的所有资源.
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("appconfig.properties"));
Run Code Online (Sandbox Code Playgroud)
无论如何,表示全局应用程序配置的此类属性文件的正确位置将不在WAR文件中.您应该将属性文件放在Tomcat和WAR文件之外的固定路径上,然后将该固定路径添加到shared.loaderTomcat的属性中/conf/catalina.properties,以使其成为类路径的一部分.这允许您自由编辑配置文件,而无需重建/重新部署整个WAR.请注意,您仍然需要使用上下文类加载器来加载它.
| 归档时间: |
|
| 查看次数: |
4634 次 |
| 最近记录: |