was缓存导致web.xml更改无效

  在项目中经常遇见这样的问题:修改应用的配置文件web.xml后,无论重启应用还是重启WebSphere服务器,都不能重新加载web.xml,导致修改的内容无效。

  这个问题困扰了我好久,即使删除了${was安装目录}\IBM\WebSphere\AppServer\profiles\AppSrv01\下的temp和wstemp两个缓存文件夹下的临时文件,重启后还是无效。几经折腾,后来终于找到了问题所在——还是由于was的缓存机制导致的。

  找到${was安装目录}\AppServer\profiles\AppSrv01\config\cells\xxxNode01Cell\applications\${应用名}.ear\deployments\目录下,有一个与应用相同名称的缓存文件夹,删除或修改该文件夹的web.xml,重启was即可。

  

web.xml文件在websphere中会有两个地方存储

  一个websphere的问题,首先声明一下我对websphere的目录结构并不是很了解,如果了解它的目录结构也就不会犯下这样的错误:
我们做应用项目需要发布到websphere上,项目经理让我为应用整体作一个限制,要求是:当系统跑批时间不允许用户登录系统;于是我想了良久发现用过滤器来做最合适不过了。开始准备了,写好过滤器进行配置后发现我的过滤器怎么样不生效,这样我就又调整了一下过滤器的位置,发现过滤器生效和了,可以由于应用本身使用了struts2,这样我的过滤器添加在struts2的过滤器之前就会出现问题:如果我的过滤器生效就不会再经过struts2的过滤器,在返回到页面的时候就会报为经过struts2过滤器的错误。之后一段时间我没有什么办法了,再经过一段时间的思考之后,我决定修改struts2的过滤器,起始也不知道从什么地方下手,于是开始看struts2的源代码,发现可以对其分发器Dispatch进行修改:就是在分发器分发之前判断如果时间是在跑批时间就让它跳转到固定页面(登录页面),经过修改终于成功了。我的调试服务器是tomcat5.5没有什么问题,昨天我们发布到websphere上后发现也是能够正常运行的。晚上我欣喜地回到了住处,突然有个同事打电话给我说他修改了web.xml中的相关时间的配置信息重启服务器后配置信息并没有生效。

   今天早晨我开始寻找问题,发现不管怎么修改它确实不会生效,经过和同事讨论:想法是websphere应该有缓存目录,找找看还有没有其他地方对web.xml有存储。于是使用find命令找web.xml文件,突然屏幕上出现两个前缀和我们的应用名称相同的web.xml文件,一个是我们预先知道目录(../AppServer/profiles/AppSrv01/installedApps/loopbackNode01Cell/),另一个是(config/cells/loopbackNode01Cell/application/)目录,为了描述方便我把前面的目录名称叫目录一,将后面的目录名称叫目录二。经过反复测试发现只有修改了目录二下面的web.xml文件并重启服务器后应用才会生效,目录一中的配置文件并不起作用,至此问题就解决了。

转载地址:http://www.educity.cn/wenda/144522.html

最新文章

  1. 一些SQL
  2. 02shell编程环境的搭建
  3. 【英语魔法俱乐部——读书笔记】 1 初级句型-简单句(Simple Sentences)
  4. HDU 2048 神、上帝以及老天爷(递归,错排,dp,概率)
  5. Add-VMNetworkAdapterAcl(添加访问控制列表)
  6. P2P风险淮安样本:5000万连锁漩涡牵出银行内案
  7. 引用JS表单验证大全 以后方便查看用
  8. mysql tcp 4层负载
  9. Excel 菜单系统
  10. Linux安装配置VPN服务器
  11. windbg蓝屏调试
  12. 怎么解决你的小程序有“bug”的问题?
  13. 计算int数组中的最大,最小,平均值
  14. 通过编写一个简单的日志类库来加深了解C#的文件访问控制
  15. echars 图表提示框自定义显示
  16. less的写法 calc以及变量
  17. Demo002 IDEA中Junit单元测试的使用(初级篇)
  18. 第三周作业(三)---WordCounter
  19. Shell 命令行快捷键
  20. 20172321 2017-2018-2 《Java程序设计》第二周学习总结

热门文章

  1. div 移动
  2. HTTP协议(二)header标头说明
  3. C++要点总结
  4. Python下ImportError: DLL load failed: 找不到指定的模块
  5. [PHP] Oauth授权和本地加密
  6. Java 集合类常用方法
  7. JS_1
  8. Sencha Architect打开闪退问题修复
  9. git push报错--私钥问题
  10. sqlite 时间函数及时间处理