WAS(websphere application server)发布web工程对web.xml的影响(strus配置文件无法生效)

来源:互联网 发布:奇葩网络 编辑:程序博客网 时间:2024/06/07 09:08

IBM Websphere application server(简称WAS服务器)上可以部署 JAVA web工程,将打好的war包远程发到WAS服务器上,一般常用的方式有两种,一.通过WAS控制台进行整包或增量发布,这种发布方法不会对JAVA web工程有影响。这种方式发布完,工程便会自动重启

二.通过ftp上传文件的方式进行增量发布(这种方式常常只是做文件更新操作),在war包安装目录下将需要更新的文件进行覆盖即可(包含web.xml),并手动去WAS控制台将工程重启,如果更新文件包含.class文件时,工程也会自动重启。但是这种方式存在一个疏漏。就是当更新文件包含web.xml时,这种发布方式对web.xml修改功能不会生效。因为,在web工程最初发布到WAS服务器上时,是通过WAS控制台的方式发布的,这种方式一般会在默认安装目录安装打好的war包,同时还会在“../IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/..Node01Cell/applications/应用名.ear/deployments/” 这个目录下生成与应用相同名称的缓存文件,其中就包含web.xml,每次功能访问时,还是访问缓存文件的东西,正常的安装目录下的web.xml新的功能代码就不会生效了。解决办法:删除或修改该文件夹的web.xml,重启was即可。

例子:

前两天在做开发时,用到了struts框架,众所周知,在WebRoot/WEB-INF/下新建相应的struts.xml配置文件,并在web.xml中加上struts相应配置即可。本地环境测试通过,通过上述第二种方式发布到测试环境(Linux服务器),结果测试环境功能不起作用。开始分析问题原因,1)struts在工程里配置不对?? 2)环境问题??

经过分析,第一种可能不成立,因为在本地测试是没问题的,那么基本上是环境问题导致。然后我去测试环境该应用的安装目录验证,发布上去的文件是否正常。验证了文件也是正常的。 这时就比较困惑了,因为问题已经超出了考虑范围。 最后我去查了WAS发布Java web工程的整个流程才发现,WAS应用服务器在发布war包时,在安装好工程的同时,也会在缓存目录下生成缓存文件, 每次功能访问时,都是先去访问缓存文件,安装目录中更新过后的web.xml就不能正常启作用了。最后把缓存文件web.xml也改了下,重启工程。柳暗花明...

 

0 0