论坛首页 Web前端技术论坛

DWR帮助说明-dwr的bug及其解决方法

浏览 29157 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-28  
在这篇文章第六部分的第一个问题中提到,DWR在JDK1.4中部署后启动时可能出错,现在补充一下错误信息:
7110 [main] FATAL org.directwebremoting.servlet.DwrServlet  - ExceptionInInitializerError. Nested exception:
java.lang.NullPointerException
        at java.util.Hashtable.get(Hashtable.java:329)
        at org.apache.commons.logging.impl.Log4jFactory.getInstance(Log4jFactory.java:136)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:257)
        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:390)

如果你在启动项目时出现这个错误,打开dwr.jar删除以下这个类问题就解决了:
org.directwebremoting.annotations.AnnotationsConfigurator
0 请登录后投票
   发表时间:2007-09-30  
这个框架道路漫长,还有多表查询、更复杂的查询可能都是要面临的问题。

当然,使用数据库的视图可以解决,但是总觉得不灵活。

0 请登录后投票
   发表时间:2007-10-03  
kaki 写道
这个框架道路漫长,还有多表查询、更复杂的查询可能都是要面临的问题。

当然,使用数据库的视图可以解决,但是总觉得不灵活。



呵呵,还是你对hibernate理解的问题吧。为什么这么说呢?我从多表查询和复杂查询分别来分析吧。

过去我的朋友费了很多的力气去实现一个可以支持多表查询的通用查询框架,然而得到的结果是非常复杂的实现过程,最终的结果也不理想。分析原因,hibernate本身在进行多表查询的时候,整个过程就比较复杂且难于通用。实际上hibernate也不建议我们使用多表查询。从另一个角度来说,hibernate中对值对象的各种关系(一对多、多对一、一对一、多对多、3种继承)的处理已经可以实现各种多表查询需要实现的功能,因而实现多表的通用查询已经变得没有意义,只要实现建立在值对象关系上的单表查询就可以了。

也有朋友问我如何在hibernate下实现复杂的查询,我笑了,因为这并不是hiberate非常善于的领域。因为复杂查询往往会采用某种数据库特有的查询语句,或者使用大量特殊的函数,执行一些特殊的处理。虽然这些hibernate似乎可以处理,但如果你真正这样做了,你会发现不管是执行效率和易编程方面都不让人满意。所以我的建议,使用复杂查询最好不要使用hibernate。
0 请登录后投票
   发表时间:2007-10-04  
感谢指点,祝您国庆节快乐!

希望这个框架越来越成熟。
0 请登录后投票
   发表时间:2007-10-05  
国庆节快乐!做一个框架不容易,需要考虑的问题真的不少。
0 请登录后投票
   发表时间:2007-10-10  
fangang你好
我初次接触dwr有一个问题,我在用dwr.util.getValues()时总是取不到对象,比如这样:
var object = {id:null,name:null};
dwr.util.getValues(object);
alert(boject.value);
输出的值是undefine。
谢谢。
0 请登录后投票
   发表时间:2007-10-10  
你实际上已经得到了,最后一句应当写成alert(object);,object.value是在object中一个叫value的属性,而你并未定义这个属性,当然就是undefine
0 请登录后投票
   发表时间:2007-10-11  
谢谢。还有问题。
我在将obiect传到后台的时候值为null啊?这是什么原因呢?
{id:null,name:null}中的id和name有什么要求么?
0 请登录后投票
   发表时间:2007-10-11  
原因就是你在页面中必须有id为id和name的标签,如
<input type="text" id="id">id的值应当与object中的属性对应
0 请登录后投票
   发表时间:2007-10-11  
假设我在页面上有一个div
<div align="center" id="div">
  <input type="text" name="name" id="name">
</div>

有一个bean为Person,有属性String ID,String name,还有一个Set set。

在PersonBus中有一个方法addPerson(Person person){}

var person = {div:null,name:null};
dwr.util.getValues(person);
PersonBus.addPerson(person);
跟到后台person的name属性为null


0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics