锁定老帖子 主题:DWR帮助说明-dwr的bug及其解决方法
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-15
Condition condition = new Condition(new Comparison("id",">",new Integer(300))); 依然提示没有定义。 |
|
返回顶楼 | |
发表时间:2007-09-15
在javaeye发短信,把你写的这段程序的jsp和bus以及dwr.xml发给我,还有错误信息,完整的。ok!
|
|
返回顶楼 | |
发表时间:2007-09-20
fangang 写道 kaki 写道 2189735 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] WARN org.directwebremoting.dwrp.BaseCallMarshaller - Marshalling exception org.directwebremoting.extend.MarshallException: Error marshalling java.lang.Object: No converter found for 'class java.lang.Object'. See the logs for more details. at org.directwebremoting.dwrp.DefaultConverterManager.convertInbound(DefaultConverterManager.java:147) at org.directwebremoting.convert.ArrayConverter.convertInbound(ArrayConverter.java:93) at org.directwebremoting.dwrp.DefaultConverterManager.convertInbound(DefaultConverterManager.java:159) at org.directwebremoting.convert.BasicObjectConverter.convertInbound(BasicObjectConverter.java:139) at org.directwebremoting.dwrp.DefaultConverterManager.convertInbound(DefaultConverterManager.java:159) at org.directwebremoting.dwrp.BaseCallMarshaller.marshallInbound(BaseCallMarshaller.java:152) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:44) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:120) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) 2189750 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] WARN org.directwebremoting.dwrp.BaseCallMarshaller - --Erroring: batchId[5] message[org.directwebremoting.extend.MarshallException: Error marshalling java.lang.Object: No converter found for 'class java.lang.Object'. See the logs for more details.] 这是设计dwr常见的问题,原因是使用了Object作为函数参数,或者在dwr中转换的对象包含类型为Object的属性。前一个问题的解决方法是不要使用这样的参数,所有的参数都是某个具体类型并在dwr中注册。后一个问题的解决方法就是在dwr.xml中禁用该属性。 用的还是您的框架,问题发生的环节是在翻页的时候。 有些奇怪。 |
|
返回顶楼 | |
发表时间:2007-09-21
在dwr.xml中加上这个试试:
<convert match="com.htxx.service.dao.query.*" converter="bean"></convert> |
|
返回顶楼 | |
发表时间:2007-09-22
对于问题一:
能否将一对多关联再Dao层封装好,业务层调用的是完整的list集合,javabean设计为既包括人的属性,也包括部门属性。 对于DWR来说,只知道一个javabean就可以了。 问题不是得到圆满解决了! |
|
返回顶楼 | |
发表时间:2007-09-23
crabboy 写道 对于问题一:
能否将一对多关联再Dao层封装好,业务层调用的是完整的list集合,javabean设计为既包括人的属性,也包括部门属性。 对于DWR来说,只知道一个javabean就可以了。 问题不是得到圆满解决了! 也许crabboy没有弄明白我提出的这个问题。正如你所说的,在设计的时候,将一对多关联在Dao层封装好,业务层调用的是完整的list集合,javabean设计为既包括人的属性,也包括部门属性。但是,dwr.xml的不同配置可以影响该问题的出现与不出现。如果dwr.xml将值对象配置为这样: <convert match="com.htxx.demo.model.*" converter="bean"></convert> 这个问题就不会出现,因为最初dwr.xml的版本就是这样配置的,方案非常成熟,没有问题,但hibernate的许多优秀特性都不能体现出来,效率也是一个问题。 如果dwr.xml将值对象只这样配置: <convert match="com.htxx.demo.model.Employee" javascript="Employee" converter="hibernate3"></convert> 这应当是dwr新增的功能,它能充分体现出hibernate的许多优秀特性,比如延迟加载,但还是不成熟的,存在我提到的问题,不信你可以试一试。 |
|
返回顶楼 | |
发表时间:2007-09-24
<convert match="com.htxx.service.dao.query.*" converter="bean"></convert> 谢谢! |
|
返回顶楼 | |
发表时间:2007-09-24
哈哈,搞定啦?
|
|
返回顶楼 | |
发表时间:2007-09-25
没有解决
<convert match="com.htxx.service.dao.query.*" converter="bean"></convert> 是解决js的问题,后来的Condition是在BusImp中实现的,所以和这个是不是有冲突?? 现在很想知道如何在前台方便的传递条件?? |
|
返回顶楼 | |
发表时间:2007-09-26
今天回到公司测试了一下,估计这个问题是Condition采用数组的方式来传递条件造成的,原因就是它的Object[]。
在dwr编程中特别要注意的是,不能在任何一个要调用的方法中存在Object或Object[]的参数及返回值,甚至在参数及返回值中不能存在某个属性是Object或Object[],否则会出现这个错误。我编写的Condition并不是专为dwr编写的,但在使用的时候发现采用数组的方式会出现这个错误,多亏我还有另一个方式:代理类的方式:) |
|
返回顶楼 | |