- 浏览: 1453973 次
- 性别:
- 来自: 青岛人在北京
文章分类
最新评论
-
yhxf_ie:
azheng270 写道 永远是0知道答案了, inser ...
使用MySQL的LAST_INSERT_ID -
yhxf_ie:
insert了还是0... 可能还要设置些什么?
使用MySQL的LAST_INSERT_ID -
一如年少:
123123
Flex使用ribbit.com的服务给手机发送短信SMS -
pointdew:
poincare 写道您好,请教一个问题,如果我的 swf 文 ...
Flex:使用FlexPaper显示PDF文档 -
pointdew:
swf远程加载问题 : flexpaper无法加载http方式 ...
Flex:使用FlexPaper显示PDF文档
这里使用 DWR3.rc1, Spring2.5 and Spring MVC
在Spring2.5中,使用了许多annotation, 新版本的DWR也支持annotation了, 下面看一下配置过程
1. 先写一个Controller
package com.myapp.web.controller; import javax.servlet.http.HttpServletRequest; import org.directwebremoting.annotations.RemoteMethod; import org.directwebremoting.annotations.RemoteProxy; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RemoteProxy public class UserController { @RemoteMethod public String getUserName(int id) { System.out.println("user id is " + id); return "UserName: " + id; } @RequestMapping("/user/add.do") public String addUser(HttpServletRequest request) { System.out.println("this is action method"); return "/user/list.jsp"; } }
@RemoteProxy注解告诉DWR,这个Class是我们想暴露出来的。@RemoteMethod注解告诉DWR去暴露这个指定的方法,只有加了RemoteMethod注解的方法会被暴露,其它的不会。
这里也可以使用@RemoteProxy(name="userRemote")的方式指定DWR接口的名字
2. 接下来看web.xml的配置
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springconfig/*.xml</param-value> </context-param> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
注意,这里没有使用org.directwebremoting.spring.DwrSpringServlet或org.directwebremoting.servlet.DwrServlet,并且请注意这里使用spring的dispatcher servlet来映射/dwr/*请求。
3. 最后看针对DispatcherServlet的配置文件action-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd" default-autowire="byName"> <context:annotation-config /> <!-- 注意这里新增加的dwr tag, 为使其生效,文件头中要声明namespace --> <dwr:configuration /> <dwr:annotation-config /> <dwr:url-mapping /> <!-- 部署项目时, 请把debug设为false --> <dwr:controller id="dwrController" debug="true" /> <!-- 多个包名用逗号隔开, 但不能有空格 --> <context:component-scan base-package="com.myapp.web.controller" /> <!-- order值越小, 优先级越高 --> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="order" value="1" /> </bean> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> <property name="order" value="2" /> </bean> </beans>
简单解释一下这些配置
- <dwr:annotation-config /> 要求DWR在Spring容器中检查拥有@RemoteProxy 和 @RemoteMethod注解的类。注意它不会去检查Spring容器之外的类。
- <dwr:url-mapping /> 要求DWR将util.js和engine.js映射到dwrController
- <dwr:controller id="dwrController" debug="true" /> 定义dwrController
- <dwr:configuration /> 此标签在这个例子中不是必须的,如果你想配置Spring容器之外的类,就需要它了。
最后一件事,DWR的测试页面 http://localhost:8080/myapp/dwr 在这里不好用。
请使用 http://localhost:8080/myapp/dwr/test/YOUR-BEAN-NAME 的方式来测试你的DWR接口,
例如这里使用 http://localhost:8080/myapp/dwr/test/UserController
OK 运行测试一下吧
原文 http://www.codercorp.com/blog/spring/configuring-dwr-30-with-spring-using-annotations.html
评论
我也是按照上面进行的配置
Cannot locate BeanDefinitionParser for element [url-mapping]
这个是怎么回事?
@xiuying:
你是否确定用的是dwr3.x?
另外, namespace有没有?
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd"
default-autowire="byName">
@wangcheng
我还喜欢把context:component-scan 具体化一点...
<context:component-scan base-package="com.zr6r" annotation-config="true"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <dwr:annotation-scan base-package="com.zr6r" />
严重: StandardWrapper.Throwable
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 18 in XML document from ServletContext resource [/WEB-INF/XXX-servlet.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dwr:annotation-config'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:402)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:316)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:282)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:126)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dwr:annotation-config'.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:410)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3165)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1898)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:705)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2747)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
... 27 more
是找不到:http://www.directwebremoting.org/schema/spring-dwr??
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="order" value="3" /> <property value="true" name="alwaysUseFullPath"></property> <property name="mappings"> <props> <prop key="/dwr/**">dwrController</prop> </props> </property> </bean>
就可以通过http://localhost:8080/myApp/dwr来访问test page了
发表评论
-
Google JavaScript 代码规范
2010-10-23 17:56 3216Google JavaScript Style Guide ... -
22个Web富文本编辑器 Rich-Text Editors
2010-02-04 12:16 37541. TinyMCE http://tinymce.moxie ... -
js关闭浏览器 (不弹出提示框)
2008-08-11 15:11 6543使用IE7,关闭浏览器时,会弹出一个提示框 解决方法: f ... -
javascript的onbeforeunload事件
2008-06-19 18:01 4874javascript的onbeforeunload 事件 ... -
一个好看的Calendar日历控件
2008-03-07 18:28 5544一个好看的Calendar日历控件 http://sotak. ... -
tablesorter 表格排序控件
2008-03-07 15:35 2400table 排序控件,支持多种数据 http://tables ... -
HTML and Javascript Library site
2008-03-06 15:23 1257http://www.dynamicdrive.com/ h ... -
Tooltip JavaScript Library 控件
2008-03-06 14:47 1606http://www.walterzorn.com/tool ... -
Autosuggest (Autocomplete) 控件 (转)
2008-02-23 22:53 2539一个Ajax的 Autosuggest (Autocomple ... -
Yahoo! Media Player 播放 MP3
2008-01-09 13:54 2166想在web中播放 mp3音乐 ? 使用Yahoo! Media ... -
Menu样式(转)
2007-12-04 14:41 2892这里列出了很多菜单样式 http://www.cssplay. ... -
解决ajax加载的javascript不被执行的问题
2007-11-23 23:38 4045用ajax 加载的页面如果带javascript,在IE中不被 ... -
img标签动态请求图片
2007-11-15 14:33 4546html的img标签是很常见的,一般的应用是 xml 代码 ... -
解决jQuery1.1 Ajax请求时cache的问题
2007-10-27 15:56 10238项目里使用jQuery 1.1.3.1版本,遇到的问题是jQu ... -
FireFox和IE浏览器的调试工具(插件)
2007-10-22 14:22 6462FireFox 插件Firebug http://www.ge ... -
Ajax 弹出窗口插件
2007-10-09 18:02 5919prototype的popup window插件 http: ... -
XMLHttpRequest 如何处理 redirect (转)
2007-09-20 17:42 8948当用XMLHttpRequest (或者其它ajax框架) 请 ... -
使用prototype的Ajax.Updater更新带javascript的html
2007-09-07 22:21 4742prototype的Ajax.Updater可以用来更新一段h ... -
Google的圆角效果(转)
2007-07-21 10:57 1832在以往的一些情况下,圆角是大家比较喜欢也经常使用的一个UI涉及 ... -
JSON学习(二) (转)
2007-05-17 17:26 2204在看了blogjava看了emu的一篇<异步json例子 ...
相关推荐
实现Comet消息推送功能,根据登陆人定向推送,解决刷新页面原有ScriptSession不能及时销毁的问题,DEMO比较简陋,请先进入login.jsp页面登陆。根据登陆名称判断推送目标,可登陆多个用户进行测试。
comet.jsp就是聊天室接收消息的界面,action.jsp就是发送消息的界面,为了更好的说明问题,将接收界面和发送界面放在两个窗口中, 测试时同时可以打开多个接收界面和发送界面, 执行发送界面的发送按钮会发现在所有...
DWR3.0_Spring3.1_Hibernate4.1_JPA全注解实例。采用JTA事务管理,在glassfish3.1.2和postgresql9测试通过。参考网上的资料整理。.
DWR3.0 Spring3.2 Hibernate4.2 JPA全注解实例。采用JTA事务管理,配置ehcache为二级缓存,在glassfish3.2.2和postgresql9测试通过。参考网上的资料整理。.
自己花了好长时间才整理出来的springMVC整合DWR3.0,以实例的模式讲解,现在拿出来分享哦!共同学习进步。
包涵了DWR3.0的JAR包,DWR3.0的说明文档,通俗易懂。
spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记 spring使用annotation整合dwr笔记
dwr comet 交互方式,使用dwr3.0+spring2.5
dwr dwr包 dwr3.0文档 dwr3.0.jar
这个项目中,详细介绍了dwr3.0+SSH2的配置,包含全部jar包及sql文件
dwr3.0.jar
dwr3.0文档和jar包。文档是英文原版。
Dwr3+Spring3 全注解 annotation 方式实现
dwr2.0 spring 3.0 整合示例
struts2.1 spring2.5 ibatis2.3 dwr3 annotation配置 集成 此中例子不完整. 如要下载:http://download.csdn.net/source/2138885
DWR3.0.jar、DWR的实例war和DWR2.0中文说明文档
dwr3.0的搭建与基本的介绍,希望可以给初学者带来帮助
DWR3.0官方中文入门教程,和dwr3.0安装文件。
dwr和spring的整合做下整理,以及对网页版的聊天功能做了一个简单的Demo,用了注解的方式,使用dwr框架来把Java代码,通过Javascript方式调用。功能虽不全,但集成是从网络上获取的,加以修改。希望对网友有用。