// Configuration de l'annotation dwr servletprivate void initializedWrServlet (servletContext Container) {dwrServlet dwrServlet = new DWRServlet (); servletRegistng.Dynamic Dynamic = Container.AddServlet ("DWR-invoker", dwrServlet); Dynamic.SetOnStartup (2); dynamic.setin "true");dynamic.setInitParameter("pollAndCometEnabled", "true");dynamic.setInitParameter("activeReverseAjaxEnabled", "true");dynamic.setInitParameter("maxWaitAfterWrite", "1800000");dynamic.setInitParameter("disconnectedTime", "60000"); dynamic.setInitParameter ("classes", dwrannotationclasssconfiguration ()); dynamic.addmapping ("/ dwr / *");} // configurer les classes d'annotation DWR, la configuration séparée) string dwrannotationClassConfiguration () {StringBuffer config = new StringBuffer (); config.Apend ("com.g360.bean.reconsole.opcost.annualopcostregrestController"); config.append (","); config.append ("com.g360.bean.security.SessionExpiredParam"); return config.tostring ();}上面我的配置是基于注解版的 servlet dwr 配置 (将 web.xml 里面的 servlet 配置转换为了纯 java 代码配置) , 当然也包括前端和后端直接交互的类 (
com.g360.bean.reconsole.opcost.annualopcostreQuestController , com.g360.bean.security.SessionExpiredParam
) 也是使用注解配置的 (dwr 注解配置 , 包括 @ remoteproxy , @ remotemethod) , 这对于有些注解配置基础的同学来说可能比较容易看懂 , 对于初次接触的有什么不懂的可以给我留言哦;
com.g360.bean.security.SessionExpiredParam : :
@Component ("SessionExpiredParam") @ RemoteProxy (Creator = SpringCreator.Class, Scope = Scriptscope.Application, Name = "Remote", CreatOrAms = @Param (Name = "Beanname", Value = "SessionExpiredParam")) Public Class SessionExpiredParam {private static Final logger logger = LoggerFactory.getLogger (SessionExpiredParam.class); public boolean issessionExpire (String SessionID) {return null == constantCacheService.getCacheConstant (sessionId); } @RemoteMethod public void setenableablewrupDate (String sessionID) {scripTession scripTession = webContextFactory.get (). GetScriptSession (); String jSessionId = scripTession.gethTTPSessionId (); String dwrSessionId = scripTession.getId (); Logger.info (string.format ("set jSessionId = [% s], dwrSession = [% s] push actived", jSessionId, dwrSessionID)); ConstantCacheService.putCacheConstant (constants.push_id + jSessionId, dwrSessionId); }}这就是相当于 dwr.xml 配置文件中如下所示:
<! Doctype dwr public "- // GetaHead Limited // Dtd Direct Web Remoting 3.0 // en" "http://getahead.org/dwr/dwr30.dtd"> <dwr> <alloper> <create Creator = "New" javascript = "Remote" Scope = "Application"> <param name = "class" Value = "com.g360.bean.security.SessionExpiredParam" /> </ Create> </ Allower> </DWR>
对于 com.g360.bean.reconsole.opcost.annualopcostRequestController 来说道理一样 , 这里就不多做说明了;
对于使用 dwrServlet 来说要使用纯注解配置 (不使用 dwr.xml) 一定要注意在初始化参数时一定要配置 Classes 这个参数 , 而且这个参数是这个注解类的全路径名 , 有多个的话就使用逗号分隔 , 这个是特别重要的哦 , 因为 Dwr3.0 好像还不支持包扫描 , 不知道是需要什么配置才能实现还是怎么的 , 如果有哪位仁兄正好看见 , 也正好知道的话请留言麻烦告诉一下 , 感激不尽啊!欢迎大家有什么不明白的地方或者有什么不对的地方 , 请随时留言;