【发布时间】:2011-01-09 11:28:02
【问题描述】:
春天:2.5.6.SEC01
DWR:2.0.5
我想使用来自 DWR 的会话范围 bean。当我将 bean 配置为单例时,它工作正常。我读了这个导师: (http://directwebremoting.org/dwr/server/integration/spring.html) 并修改了我的applicationContext.xml,但还是有问题。
我的 applicationContext.xml:
很好,但是当我使用 AJAX 函数时,我得到了这个异常:
11:31:09,593 信息 [DefaultRemoter] 执行:DBTestAjaxFunc.testJNDI() 11:31:09,609 警告 [DefaultRemoter] 方法执行失败: org.springframework.beans.factory.BeanCreationException: 创建具有名称的 bean 时出错 'scopedTarget.dbtestajax':范围 “会话”对 当前线程;考虑定义一个 这个 bean 的作用域代理,如果你 打算从 单身人士;嵌套异常是 java.lang.IllegalStateException:否 找到线程绑定请求:Are you 引用请求属性 在实际 Web 请求之外,或 处理外部的请求 最初接收线程?如果你 实际上是在网络中运行 请求并且仍然收到这个 消息,您的代码可能正在运行 在外面 DispatcherServlet/DispatcherPortlet: 在这种情况下,使用 RequestContextListener 或 RequestContextFilter 公开 当前请求。
似乎没有创建aop代理,但我不知道为什么。
类路径中的库:
- aspectjrt.jar
- aspectjweaver.jar
- cglib-nodep-2.2.jar
- dwr.jar
- spring.jar
- spring-aop.jar
- spring-dwr-2.0.xsd
- spring-web.jar
- spring-webmvc.jar
有什么想法吗? (谢谢!)
【问题讨论】:
-
你正在经历
DispatcherServletinweb.xml的春天吗? -
是的,当我不在页面中使用任何 ajax 功能时,它可以工作,就像带有控制器的弹簧表单等。
-
不是,我的意思是DWR请求是通过
DispatcherServlet,还是直接到DWR?