在Websphere上修改项目的web.xml中的配置后不起作用
往往在我们把一个java项目部署到了websphere上的时候,到后来需要修改项目中WEB-INF下的某些配置文件,如web.xml,通常我们是找到这个项目的部署路径,如:
E:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv02\installedApps\caocaoNode01Cell\caocao_war.ear\caocao.war
,然后在WEB-INF文件夹下对web.xml做相应的修改,然后重启,但我们发现重启之后,修改的web.xml里的内容并没有起作用,为什么.... 只有你把这个项目重新部署一次,才起作用。
在去年做一个项目的时候,发现了此问题,感觉如果修改一个配置文件就要重新部署一次的话,那websphere也太那个了吧..
在寻找解决方法的时候,我和同事无意间点开了一个目录,里面也有相应的项目目录,点进项目只是里面只有META-INF和WEB-INF两文件夹,再点开WEB-INF里面包含了项目中WEB-INF下的所有配置文件,但是都是刚部署项目时的配置文件,某些配置文件更新了的地方在这里没有更新,于是抱着试试的想法,把更新了的配置文件在这里也做相应的更新,重启应用,呵呵,成功了。这里路径在(对应上面提到过的项目部署路径)
E:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv02\config\cells\caocaoNode01Cell\applications\caocao_war.ear\deployments\caocao_war\caocao.war
原来websphere下项目的配置文件有两份,一份在installedApps里,一份在config里,要修改配置文件的时候,这两个地方都要修改,特别是config里面的容易被我们忽视。
还有一点,如果你要修改项目的上下文根,即访问项目的路径,也要修改两处,就是在:
E:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv02\installedApps\caocaoNode01Cell\caocao_war.ear\META-INF和
E:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv02\config\cells\caocaoNode01Cell\applications\caocao_war.ear\deployments\caocao_war\META-INF
下的application.xml文件,里面有一个 <context-root>/caocao</context-root>节点,修改“/caocao”即修改项目的上下文根。
今天做另外一个项目的时候,因为这个项目是别的同事做了段时间,我才过来接手的,项目中存在一些问题,而我又正好对项目中的一些配置文件进行了更新,于是想到要更改两个地方,当我进行修改的时候,猛然发现,在config里面的所有项目的配置文件都是项目部署时的文件,而项目下的配置文件已经更改了很多,这里的却没有修改,难怪会出很多错,于是不管那么多,先把这些配置文件同步更新再说,也就想起了该记录一下这个事件。呵呵,以上用的是以websphere6.1为例