我的项目中使用了dwr2.0版本,在最初使用的时候出现了如下的报错: 例外被抛出且未被接住,一直找不到解决的方法,在javaeye上找到dwr应用时请注意(初学者) ,使用了博主提供的解决方案jar包,终于能正常使用了.
但最近dwr出现了一个问题,造成服务器多次出现死锁,然后由于服务器分配资源耗尽,导致tomcat死机,查看日志,输入多次以下错误,最后tomcat被关闭:
ERROR: 2008-06-18 07:12:11,912: CommonsLoggingOutput[line:75]: DefaultScriptSessionManager.invalidate): removeCount=0 when invalidating: DefaultScriptSession[id=${scriptSessionId}403]
查找解决方法,但是找到的唯一的匹配方法是删除多余的dwr包,检查过web配置,只有一个dwr包,,现在服务器几乎是一到下午四点左右就死机,需要重启,十分郁闷.
后来有一篇文章说,在dwr2.0.2以前的版本会出现这种错误,原因在于DefaultScriptSessionManager这个类中的一个方法,它的一个循环处理应该放到同步线程处理当中.
我原来使用的dwr包是2.0.4,但看过博主提供的解决jar包,这个类是修改的2.0.2以前的版本.
找到2.0.4中的类,讲DefaultScriptSessionManager类覆盖了博主的解决jar包,重新覆盖了jar包.
服务器运行了一段时间,没有出现以上错误,但由于还没有到错误发生的特定时间,还没办法确认修改是否有效.
附件是我修改了DefaultScriptSessionManager的dwr的jar包.
如果修改无效的话,附件就处理掉,呵呵.