部署后更改web.xml

时间:2013-02-20 04:04:15

标签: deployment war web.xml rebuild redeploy

在部署之后,是否可以在app服务器中更改web.xml(或实际上是任何其他文件)?所有应用服务器是否公开其部署/目录结构?

我更希望在本地进行更改,重新构建战争(或.ear等),然后重新部署应用程序。

1 个答案:

答案 0 :(得分:2)

关于您的第一个问题,它取决于资源的类型。对于类路径资源,您可以在应用程序服务器的类加载机制中具有更高优先级的任何目录中覆盖该文件(例如,如果您使用的是Tomcat,则为$ CATALINA_HOME / lib)。对于xml文件(如web.xml),可以使用绝对路径在打包文件中声明外部实体,但必须确保该文件将出现在目标服务器上。例如,您打包的web.xml可能如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document [
<!ENTITY webEntity SYSTEM 'C:\Temp\web.xml'>
]>
&webEntity;

因此web.xml的实际内容将是文件C:\ Temp \ web.xml的内容。

简而言之,没有正式的方法可以做到,但有一些技巧。我想,人们做的是为每个生产站点生成一个自定义包。使用Maven(如war叠加或分类器)可以通过多种方式自动执行此操作。这是an interesting link

关于你的第二个问题,我不会依赖这个假设。在Tomcat服务器上修改爆炸资源非常简单,但在JBoss AS上并不是那么简单。