要加入到你的 web.xml 最少的代码就是简单地去申明 DWR servlet,没有它 DWR 就不起作用。
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class></servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> </servlet>
在 DWR2.x 里,DwrServlets 是类 org.directwebremoting.servlet.DwrServlet ,尽uk.ltd.getahead.dwr.DWRServlet 仍然可以用。在 DWR 1.x 你不得不使用后者。
有些额外的 servlet 参数,在有些地方很重要。尤其 debug 参数这个扩展 DWR 的标准结构是使用<init-params>
。放在<servlet>
内,就像如下使用:
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet>
另外,启动服务时,如果报如下错:
是 DWR2.0 加入了 JDK5 的注释(annotations).DwrServlet 初始化的时候会去检查注释的类,找不到就
抱错了。如果你不用 annotations 也可以忽略掉这个错误。不过看起来总是不爽。解决方案如下:
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>classes</param-name> <param-value>java.lang.Object</param-value> </init-param> </servlet>