`
wangzhen5
  • 浏览: 80777 次
  • 性别: Icon_minigender_1
  • 来自: 河南省
社区版块
存档分类
最新评论

dwr整合spring 收藏

    博客分类:
  • DWR
阅读更多
dwr整合spring 收藏
dwr整合spring时,出现以下异常。

throw 'allowScriptTagRemoting is false.';
//#DWR-INSERT
//#DWR-REPLY
dwr.engine.remote.handleException("2","0",{javaClassName:"java.lang.Throwable",message:"Error"});

java.lang.IllegalArgumentException: object is not an instance of declaring class

google了一下,找到了相关做法。


dwr整合spring,我用的是dwr3rc1和spring2.5,当初整合时是查看了相关的图书《基于J2EE的Ajax宝典》和《DWR实战》。
图书介绍的整合方式是在dwr.xml 文件中加入
<allow>
  ...
  <create creator="spring" javascript="Fred">
    <param name="beanName" value="Shiela"/>
  </create>
  ...
</allow>

运行后,发行firebug响应出现
throw 'allowScriptTagRemoting is false.';
//#DWR-INSERT
//#DWR-REPLY
dwr.engine.remote.handleException("2","0",{javaClassName:"java.lang.Throwable",message:"Error"});

后台报出
java.lang.IllegalArgumentException: object is not an instance of declaring class

重新查看DWR官网的文档,发现DWR整合spring已经有很大改动。重新按照官网的整合方式整合。
图书中介绍的整合方式已经过时,如果按照图书中的整合方式整合可能出现上述异常。

并且在对于如果dwr调用了使用了AOP的spring bean,应该加上<aop:scoped-proxy/>
例如
<bean id="B"      class="com.bjinfotech.spring.practice.service.NoteServiceImpl">
     <aop:scoped-proxy/> <!-- This is needed or DWR gets confused. -->
     <dwr:remote javascript="noteRemoteService">
       <dwr:include method="addNote" />
</dwr:remote>
<property name="noteDao" ref="noteDao" />
</bean>


dwr调用了使用了AOP的spring bean B,实际上是调用了spring bean B的代理类而不是B本身,
所以报出java.lang.IllegalArgumentException: object is not an instance of declaring class。加上
<aop:scoped-proxy/> ,根据官网手册2.0.5版3.4的解释,类似的
当DWR调用了一个使用B对象的方法时,实际调用的是代理对象的方法。
随后代理对象会从容器中获取真正的B对象,并将方法调用委派给获取到
的实际的B对象。这样DWR就得到了B对象,而不是B对象的代理,就不会报出
java.lang.IllegalArgumentException: object is not an instance of declaring class
(对象不是声明类的实例异常)。


经验教训:
1.使用新框架时,最好查看官网的最新文档,图书比较容易过时。
图书上的做法如果过时之后,容易出错。

2.使用框架时,要调试成debug模式,这次使用DWR时 ,没有一开始调成debug模式,
结果控制台不报如何异常,非常难找是哪里出错了。

搜索相关做法来源:

1.http://www.iteye.com/topic/409548

2.http://forum.springsource.org/showthread.php?t=57584

3.DWR官网的文档
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jianw2007/archive/2009/07/30/4394244.aspx
分享到:
评论

相关推荐

    DWR整合Spring MVC

    **DWR整合Spring MVC**是将Direct Web Remoting (DWR)框架与Spring MVC结合使用,以实现前端JSP页面直接调用后端Java方法的功能。这种整合方式极大地提高了Web应用的交互性和实时性,降低了数据传输的复杂性。本文将...

    DWR与SPRING,DWR与STRUTS2的整合

    提供的文档“dwr与spring.doc”和“dwr与struts2.doc”可能详细阐述了整合过程和最佳实践,而“一个小例子.txt”可能包含了一个实际整合示例,帮助读者更好地理解整合步骤和实现方式。学习并掌握这些知识对于提升...

    dwr与spring整合

    **DWR(Direct Web Remoting)与Spring框架的整合** DWR是一款开源的Java库,它允许在浏览器和服务器之间进行动态、实时的双向通信,实现了JavaScript与Java之间的远程调用。Spring则是一个广泛使用的Java企业级...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

    dwr整合spring解释说明

    在本文中,我们将深入探讨如何将Direct Web Remoting (DWR) 整合到Spring框架中,以便在Web应用中实现远程方法调用(RMI)。DWR允许JavaScript与Java后端进行通信,使得在不刷新页面的情况下更新前端数据成为可能。...

    DWR与SPRING 集成

    在这个项目中,你可以找到如何将DWR与Spring MVC整合的代码实例,包括控制器定义、DWR配置、前端页面和JavaScript调用等。 6. **实战演练**: 为了更好地理解DWR和Spring的集成,可以下载 `spring-mvc-showcase-...

    dwr+spring 注解方式

    将DWR与Spring整合,可以利用Spring的强大功能来管理和配置DWR组件,同时保持前后端交互的高效性。 在使用DWR和Spring结合时,注解方式的引入极大地简化了配置过程。下面将详细介绍如何通过注解实现DWR和Spring的...

    dwr2.0 spring 3.0 整合示例

    整合DWR和Spring的主要目标是利用Spring的管理能力来处理DWR的bean,同时利用DWR的动态JavaScript生成能力来简化客户端的Ajax调用。 1. **DWR的配置**: - 在DWR 2.0中,我们需要在Web应用的`WEB-INF/dwr.xml`配置...

    dwr整合spring

    **DWR整合Spring详解** Direct Web Remoting (DWR) 是一种JavaScript库,它使得Java对象可以在Web浏览器中直接调用,从而实现富客户端(Rich Internet Applications,RIA)的开发。Spring框架则是一个广泛使用的...

    dwr和spring和struts2整合

    4. **整合DWR和Spring**:为了让DWR能够找到Spring管理的Bean,需要配置DWR-Spring集成。这可以通过在dwr.xml中添加`&lt;dwr:annotation-config&gt;`标签,以及在web.xml中配置DWR的Spring监听器来实现。 5. **编写前端...

    ajax dwr+spring整合

    Spring还通过Spring MVC和Spring Web Flow支持Web应用的开发,与DWR整合可以实现更高效、更灵活的前端与后端交互。 **三、DWR与Spring整合** 1. **配置DWR** 在Spring项目中使用DWR,首先需要在`web.xml`中配置DWR...

    DWR+SPRING整合

    ### DWR与Spring框架整合详解 #### 一、引言 Direct Web Remoting(DWR)是一种用于在浏览器端和服务器端之间进行直接调用的技术,它使得JavaScript能够像调用本地函数一样调用服务器端的Java方法。而Spring框架是...

    dwr+spring+hibernate模板.zip

    《DWR+Spring+Hibernate整合应用详解》 在IT领域,DWR(Direct Web Remoting)、Spring和Hibernate是三个至关重要的技术组件,它们分别在Web应用程序的远程调用、依赖注入和对象关系映射方面发挥着核心作用。将这三...

    使用dwr+spring实现消息推送

    在本教程中,我们将探讨如何利用Direct Web Remoting (DWR) 和Spring框架来实现这样的功能。 DWR是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时的、异步的通信,类似于Ajax的功能,但更加强大。...

    DWR结合spring例子(可用)

    这个例子对于初学者来说非常有价值,因为它展示了DWR如何简化前后端通信,以及如何在Spring环境中整合DWR。通过实践这个示例,你可以更好地理解DWR的工作原理,以及如何在实际项目中利用它提高Web应用的性能和用户...

    DWR2.0 整合Spring2.0

    在DWR2.0中,整合Spring2.0主要涉及以下几个方面: 1. **依赖注入(Dependency Injection, DI)**:Spring框架的核心特性之一就是DI,它可以将对象的依赖关系解耦,使得代码更加灵活和可测试。通过Spring的...

    DWR+Spring整合案例

    **DWR (Direct Web Remoting) 与 Spring 整合详解** DWR 是一个 Java 开发框架,允许在浏览器和服务器之间进行实时的 AJAX(Asynchronous JavaScript and XML)通信,使得用户界面能够与后端服务进行异步交互,提供...

    dwr+spring实例

    要将DWR与Spring整合,我们通常会使用Spring的`DwrController`或者自定义一个Spring MVC控制器来处理DWR请求。此外,我们还需要在Spring的配置文件中声明DWR的相关bean,如`DwrConfig`,并将其与其他Spring服务(如...

Global site tag (gtag.js) - Google Analytics