就是在火狐下面我实现了推送,页面也及时更新了。但是ie下面一点反应都没有。
求各位给点意见,到底是哪里出了问题?web.xml配置<!-- dwr框架配置文件 -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<!-- 默认的servlet -->
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- 调试DWR,发布系统时应将其设为false -->  
<init-param>
<description>调试DWR,发布系统时应将其设为false</description>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<description>在WEB启动时是否创建范围为application的creator</description>   
<param-name>
initApplicationScopeCreatorsAtStartup
</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>  
      <param-name>maxWaitAfterWrite</param-name>  
      <param-value>500</param-value>  
    </init-param>  
<load-on-startup>4</load-on-startup>

</servlet>
dwr.xml:
<allow>
<convert converter="bean" match="com.wenice.domain.user"/>
<create javascript="DWRService" creator="spring" >
 <param name="beanName" value="DWRService"/>
</create>
</allow>applicationContext.xml
<!-- 配置dwr -->
<dwr:configuration>
<dwr:convert type="bean" class="com.wenice.domain.user" />  
</dwr:configuration>
<bean id="DWRService" class="com.wenice.web.dwr.DWRService">
<dwr:remote javascript="DWRService">
<dwr:include method="send" />
    </dwr:remote>  
</bean>      
主要的java代码:    /** 
     * 处理发送信息相关 
     *  
     * @author 张阳
     *  
     */  
    public class DWRService {
        /** 保存当前在线scriptSession列表 */  
        public static HashMap<String, ScriptSession> scriptSessions = new HashMap<String, ScriptSession>();  
        /**
         * 更新scriptSession列表
         *  
         * @param username  用户名
         * @param flag 是否存入map中
         * @param request  请求
         * @return
         */
        public String updateUsersList(String username, boolean flag, HttpServletRequest request) {  
            // 这里取会话(HttpSession)的id为用户id   
         String httpSessionId = request.getSession().getId();
            if (flag) {   
             this.setScriptSessionFlag(username);
                //将HttpSessionid和页面脚本session绑定  
                scriptSessions.put(httpSessionId, WebContextFactory.get().getScriptSession());
            }else{  
                return null;  
            }  
            return httpSessionId;  
        }  
      
        /** 
         * 将用户id和页面脚本session绑定 
         * @param userid 
         */  
        public void setScriptSessionFlag(String username) {  
            WebContextFactory.get().getScriptSession().setAttribute("username", username);  
        }  
      
        /** 
         * 根据用户id获得指定用户的页面脚本session 
         * @param userid 
         * @param request 
         * @return 
         */  
        @SuppressWarnings("unchecked")  
        public ScriptSession getScriptSession(String userid, HttpServletRequest request,String server) {  
            ScriptSession scriptSessions = null;  
            java.util.Iterator it = this.scriptSessions.entrySet().iterator();
            while(it.hasNext()){
            java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
             ScriptSession session = (ScriptSession) entry.getValue();
             String xuserid = (String) session.getAttribute("username");
             if (xuserid != null && xuserid.equals(userid)) {  
             scriptSessions = session;
             }  
            }
            return scriptSessions;  
        }  
          
        /** 
         * 发送消息 
         * @param sender 发送者 
         * @param receiverid 接收者id 
         * @param msg 消息内容 
         * @param request 
         */  
        public void send(String sender,String receiverid,String msg,String server,HttpServletRequest request){  
            ScriptSession session = this.getScriptSession(receiverid, request,server);  
            if(null!=session){
                Util util = new Util(session);  
//                util.addFunctionCall("changeStyle", "messageImage");
                util.setStyle("messageImage", "display", "");  
//                util.setValue("sender", sender);  
//                util.setValue("msg", msg);  
//                util.addScript(new ScriptBuffer("alert('0000');"));;
            }
        }页面代码:
就基本上是这样的:

解决方案 »

  1.   

    首先 看看是不是脚本问题,断点测试是否进入服务器,然后 check~~
      

  2.   

    已经解决了,我以为是我代码写的有问题。然后我将spring和dwr从项目里面抽出来了,又重新写了一个web小项目,专做服务器推的。删除了多余的配置文件,发现在ie也是好用的。后来就又去项目中修改了配置文件删除了下面的代码
    dwr.xml
    <convert converter="bean" match="com.wenice.domain.user"/>

    application.xml
    <dwr:configuration>
            <dwr:convert type="bean" class="com.wenice.domain.user" />  
        </dwr:configuration>