又是很久很久没有来看看了,来了还是留点啥作纪念吧呵呵。
前面刚做了个j2ee框架移行的项目,也就是把原来使用的那个框架转到struts1.3上去,
其中有个印象比较深的问题是struts里取得RequestProcessor是决定于配置文件中的controller,如下:
按照这个思路实现后的代码,出现个很难排查的问题,页面同时被多人操作时,会出现错误,而且错误还不统一,
出错的地方也不完全一致,经过很辛苦的调查(这种问题debug是追踪不到的),我怀疑是处理同步问题,
尝试了好几种方法,最终确定下面这种方法是可行的。
1。自定义个Servlet继承struts的ActionServlet,Servlet响应使用自定义的Servlet,这里当然免不掉在
web.xml里配置自定义Servlet了。
2。在自定义Servlet里,重写getProcessorForModule方法,如下:
到此,关键部分全部完成,同步问题就一直没有出现了,
我没有看struts代码,不知道在它原来的方式里直接从配置里去取时,难道不是每次new个RequestProcessor对象吗?