我的Java Web应用程序在war文件中包含配置文件(例如myapp.xml)。我在我的web.xml文件中提供了这个文件的路径,如下所示。Tomcat web.xml配置变量
<servlet>
<servlet-name>wc</servlet-name>
<servlet-class>com.myapp.servlets.WC</servlet-class>
<init-param>
<param-name>configfile</param-name>
<param-value>${catalina.base}/webapps/myapp/WEB-INF/myapp.xml</param-value>
</init-param>
</servlet>
的问题是,我现在要用于测试和开发的同一服务器上部署各种版本而且每次都会有下的webapps不同的路径。我想避免修改每个部署的web.xml文件,但我找不到任何引用WEB-INF文件夹的方法。
这是我希望做什么:
<servlet>
<servlet-name>wc</servlet-name>
<servlet-class>com.myapp.servlets.WC</servlet-class>
<init-param>
<param-name>configfile</param-name>
<param-value>${app.base}/myapp.xml</param-value>
</init-param>
</servlet>
凡$ {} app.base == $ {} catalina.base/webapps /下的myapp/WEB-INF
是有一些可用的变量,会给我的应用程序目录的路径?
如果不是,你能想出其他方法来完成这个吗?
我知道我可以给这样的tomcat变量,但那不能回答我的问题。我想在该web应用程序的web.xml中引用当前部署的应用程序的路径。有了这个解决方案,我将不得不为所有预期的部署提供变量,并仍然修改web.xml以引用与该预期部署相关的变量。 – 2012-08-06 18:56:41
为什么你需要绝对路径?你可以(也应该)使用相对路径。查看我的更新 – Bozho 2012-08-06 19:35:32
感谢您的更新。你展示的内容将允许我访问代码中的应用程序资源,但我不知道如何将它转换为我可以放在我的web.xml中以引用myapp.xml ... – 2012-08-06 20:21:07