构建一个推送的步骤:
一、web.xml的配置:
二、dwr.xml配置
三、要首先启动的包名.类名,这个就是一般的类就可以了。
关键是这里需要定时器,定时遍历scriptsession往浏览器写出信息。
四、如果需要利用Hibernate,尤其要注意包不能多,包多了就会出现org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="" />,以及另外一个错误Duplicate Mapping,这个并不是你将Configure改为AnnotationConfigure就能正确的,所以依赖包一定不要多。
利用Maven构建时,我只在pom.xml中配置了以下几个依赖包即可应用推送+Hibernate:
org.hibernate (hibernate-entitymanager.3.6.5.Final.jar)
org.directwebremoting (dwr.3.0.M1.jar)
commons-lang (commons-lang.2.6.jar)
commons-logging (commons-logging.1.1.1.jar)
jetty (servlet-api.2.5-6.02 .jar)
javax.transaction (jta.1.1.jar)
其他依赖包是靠这些配置的依赖包得来的,查看工程下的目录Maven Dependencies可以看到其他包如log4j等。
一、web.xml的配置:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- 防止DWR CSRF Security Error 添加参数crossDomainSessionSecurity和allowScriptTagRemoting-->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowScriptTagRemoting</param-name>
<param-value>true</param-value>
</init-param>
<!-- Comet方式 -->
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<!-- 通知DWR 在应用程序启动时初始化 ReverseAjaxTracker 见配置dwr.xml -->
<param-name>initApplicationScopeCreatorsAtStartup</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!-- 激活json/jsonp服务 -->
<init-param>
<param-name>jsonpEnabled</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
二、dwr.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<!-- 声明为 application级别的只能有一个配置如下的要首先启动的类,如果有第二个将覆盖前一个 -->
<create creator="new" javascript="Comet" scope="application">
<param name="class" value="要首先启动的包名.类名"/>
</create>
<convert converter="bean" match="com.nwd.bean.Position"/>
<convert converter="bean" match="com.nwd.bean.AbstractEntity"/>
</allow>
<!-- 这里映射DWR与脚本的对应类型,可以查看源码dwr中放置了很多类型 -->
<signatures>
<![CDATA[
import java.util.List;
Comet.selectCar(List<String> tids);
]]>
</signatures>
</dwr>三、要首先启动的包名.类名,这个就是一般的类就可以了。
关键是这里需要定时器,定时遍历scriptsession往浏览器写出信息。
四、如果需要利用Hibernate,尤其要注意包不能多,包多了就会出现org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="" />,以及另外一个错误Duplicate Mapping,这个并不是你将Configure改为AnnotationConfigure就能正确的,所以依赖包一定不要多。
利用Maven构建时,我只在pom.xml中配置了以下几个依赖包即可应用推送+Hibernate:
org.hibernate (hibernate-entitymanager.3.6.5.Final.jar)
org.directwebremoting (dwr.3.0.M1.jar)
commons-lang (commons-lang.2.6.jar)
commons-logging (commons-logging.1.1.1.jar)
jetty (servlet-api.2.5-6.02 .jar)
javax.transaction (jta.1.1.jar)
其他依赖包是靠这些配置的依赖包得来的,查看工程下的目录Maven Dependencies可以看到其他包如log4j等。
本文详细介绍了构建推送系统所需的web.xml配置、dwr.xml配置及关键注意事项,包括使用DWR实现WebSocket式推送,利用Hibernate与Maven构建推送功能,并解决相关依赖冲突。重点突出了如何配置和优化系统以实现高效、稳定的实时消息推送。
1112

被折叠的 条评论
为什么被折叠?



