Resin 的mod_caucho插件不解析filter的問題
因為struts2的服務(wù)方式為filter方式,而Resin的mod_caucho插件正常情況下僅會對Servlet,Jsp服務(wù),不會對Filter過濾的網(wǎng)址服務(wù),這給struts2在Resin上使用帶來一些問題。這可使用"Special servlet-mappings",詳細(xì)情況可以參考
http://www.caucho.com/resin-3.0/install/plugin-dispatch.xtp。
也就是說,對于一些特殊的url,可以使用plugin_match來讓resin來服務(wù),而plugin_ignore的作用正好相反。在這里,我們需要plugin_match,為了避免打亂正常的配置,我們使用和web.xml文件相同作用的resin-web.xml來設(shè)置相應(yīng)的url,這樣設(shè)置僅對resin有效,不影響其他server,還是不錯的。
<servlet-mapping url-pattern='*.html' servlet-name='plugin_match'/>
<servlet-mapping url-pattern='*.do' servlet-name='plugin_match'/>
<servlet-mapping url-pattern='/dwr/*' servlet-name='plugin_match'/>
</web-app>
這樣struts2的action就可以正常工作了。
另外,如果url后面自動跟上jsessionid的話,resin會反應(yīng)404找不到網(wǎng)頁的錯誤。在host里配置里加上<session-config enable-cookies='true' enable-url-rewriting='false'/>可避免這個問題。