Jboss迁移到Tomcat之手记(四)-DWR

JBoss 上用的是 DWR 2.0, lib 里有 dwr20.tld, dwr-2.0.1.jar ,转到 Tomcat 7 后,总是在 DWR 调用处出现 session error ,无法成功。我初步猜测是不是 DWR 跟这么新的 Tomcat 不兼容,所以就升到 DWR 3.0(dwr3.0.jar) ,结果 DWR 调用处出现 CSRF Security Error ,网上一查,才知道是跨域安全验证错误,在 DWR 文档网站( http://directwebremoting.org/dwr/documentation/server/configuration/servlet/index.html )上看到是两个参数配置作祟。在 web.xml 里的 DWR servlet 配置里加上初始化参数如下
<servlet>
                   <servlet-name>dwr-invoker</servlet-name>
         <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
          ….
<init-param>
             <param-name>crossDomainSessionSecurity</param-name>
             <param-value>false</param-value>
      </init-param>
      <init-param>
            <param-name>allowScriptTagRemoting</param-name>
            <param-value>true</param-value>
      </init-param>
</servlet>
问题解决。回到 dwr2.0 也没问题。不过在升到 DWR3.0 时发现一个有趣的东西。就是 DWR 2.0 javascript 对象 DWREngine 不再被 3.0 支持,变成 dwr.engine 。而 dwr.engine 也被 DWR 2.0 支持。所以为了兼容考虑,以后还是用dwr.engine还调用吧。

你可能感兴趣的:(tomcat,Ajax,职场,DWR,休闲)