DWR3常见错误
1.提示“缺少对象”
原因:
??? 程序中使用了dwr.util.setValue("userInfo",data);或getValues()之类的语句。而控件ID与这里的userInfo名字不匹配,则提示缺少对象。
解决方法:
??? 检查每一个setValue中的控件ID名称,保证一一对应。
??? 如果依然找不到错误,则可能是由于setValue()中的控件无法也结果值绑定,可以再一个一个试一试。
2.提示“java.lang.SecurityException: CSRF Security Error”
原因:
??? 安全性问题
解决方法:
修改 web.xml 中 DWR 配置信息, 加入跨域调用配置信息(红色部分),修改为:
<servlet>
?????????? <param name="class" value="dwrexam.UserService"/>
?????? </create>
?????? <convert match="dwrexam.UserBean" converter="bean">
??????????
?????? </convert>
??? </allow>
2.在ModelBean中,添加不带参数和带参数的构造函数
??? public UserBean(){
??? ????
??? }
??? public UserBean(String userName,String userPassword){
??? ??? this.userName=userName;
??? ??? this.userPassword=userPassword;
??? }
3.找一个最新的dwr.jar包,我在官网上下的dwr.jar包大小为1104K。但是我从别人代码中下的dwr.jar包为1204K,大一点的JAR包把问题解决。
4.把项目重新布置到WEB,删除WEB服务器中的缓存文件,在work目录下
5.如果还不能解决,只在重新启动电脑了,让上帝保佑你吧
????
5.DWR3中调用addRows出错
现象:
??? 返回类型必须是List类型,可能会出现以下问题
?????? 数据在网页上不断重复,比如第一个字段显示AA,第二个字段显示AABB,第三个字段显示AABBCC
原因:
??? DWR3的BUG。
解决方法:
??把dwr.jar包换成最新的,问题解决。dwr.jar的大小为1104K。
?
补充个细节:在专门为DWR服务的类中,只要写java调用和数据库交互的DAO,不论是自己写的JDBC或者是hibernate映射的DAO,都会导致测试页面对应的方法弹出Error,不过这个只是针对从数据库读取数据返回值类型为JavaBean和List这两种情况,对于返回基本类型的情况则是正确的!如果不是同数据库交互,返回javaBean和List就都不会报错。