DWR 2.0加了很多东西,也有不少变化的地方。最容易看到的变化就是包名的变化了,由 uk.ltd.getahead 变成了 org.directwebremoting
java.lang.IllegalArgumentException: DefaultContainer can’t find … 网上到处搜索,最后终于在DWR的邮件列表里找到答案,原来这个错误其实也并不影响,原因是因为启动时会检查JDK5的annotations,我还没用到 annotations注释,所以有个哥们也提出了解决办法,就是初始化时加上java.lang.Object,俺一试果然成功!
web.xml改后成为这样:
<servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>DWR Servlet</display-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>classes</param-name> <param-value>java.lang.Object</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
另外DWR的dwr.xml千万别用其他编辑器打开编辑,否则很容易出现xml解析时字符集造成的异常,最好还就是用Eclipse编辑好了。