在我们的生产环境中,我们将Tomcat配置为在webapps目录中有一个符号链接,指向部署在服务器上其他位置的.war文件,如下所示:
tomcat 7.0.53
|_webapps
|_app1 (symlinks to /usr/local/myCompany/app1.war)
|_app2 (symlinks to /usr/local/myCompany/app2.war)
等
所有应用程序都是使用相同的代码库构建的,当我构建它时,我指定它是app1还是app2。我已经被赋予了在tomcat启动时确定它是app1还是app2的任务,所以现在所有的符号链接都会指向同一个文件。
有没有办法在StartupContextListener中以编程方式告诉符号链接指向该文件的内容?它应该为每个应用程序扩展一次战争,不是吗?
这是为每个应用配置server.xml的方式:
<Host name="www.app1.com" autoDeploy="false" deployOnStartup="false">
<Context path="" docBase="/usr/local/mpl/tomcat/webapps/app1" />
<Alias>www.app1.com</Alias>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="www.app1.com_access_log" suffix=".txt" pattern="common" resolveHosts="false"/>
</Host>
如果我可以访问docBase属性或Host标签的name属性,它可以解决问题,但我不确定是否可以获取该信息。
谢谢, 罗布