要加入到你的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>在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>
另外,启动服务时,如果报如下错。java.lang.IllegalArgumentException: DefaultContainer can't find aclasses是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> 多个dwr.xml配置和J2EE角色定义一般来说只需要一个dwr.xml文件,并且会被设为默认位置WEB-INF/dwr.xml。所以你不需要配置。有3个原因说明你为何需要指定不同位置的dwr.xml文件: 你想保持dwr.xml的文件请参照下面的例子 <param-value>WEB-INF/classes/com/yourco/dwr/dwr.xml</param-value> 你可以有很多的远程方法类并且希望指定文件。在这个例子里将指定不同文件开始配置,不同 的param-name将重复多次DWR将轮流读取它们。 DWR能够使J2EE URL具有给与不同用户组不同权限的安全机制。通过起不同名字,URL和权 限。就像如下例子去使用 用一个字符串”config” 作为开始,设置param-name,每个param-name必须不同。<servlet> <servlet-name>dwr-user-invoker</servlet-name> <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>config-user</param-name> <param-value>WEB-INF/dwr-user.xml</param-value> </init-param></servlet><servlet> <servlet-name>dwr-admin-invoker</servlet-name> <servlet-class> org.directwebremoting.servlet.DwrServlet </servlet-class> <init-param> <param-name>config-admin</param-name> <param-value>WEB-INF/dwr-admin.xml</param-value> </init-param></servlet>
<servlet-mapping> <servlet-name>dwr-admin-invoker</servlet-name> <url-pattern>/dwradmin/*</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>dwr-user-invoker</servlet-name> <url-pattern>/dwruser/*</url-pattern></servlet-mapping> <security-constraint> <display-name>dwr-admin</display-name> <web-resource-collection> <web-resource-name>dwr-admin-collection</web-resource-name> <url-pattern>/dwradmin/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> </auth-constraint></security-constraint><security-constraint> <display-name>dwr-user</display-name> <web-resource-collection> <web-resource-name>dwr-user-collection</web-resource-name> <url-pattern>/dwruser/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>user</role-name> </auth-constraint></security-constraint>
相关资源:敏捷开发V1.0.pptx