请教一个DWR推送消息的问题

a_king 2015-05-14 03:19:36
我用DWR3来实现推送消息的功能,可是总是实现不了,请高手帮忙。我的代码如下
WEB.XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<servlet>
<servlet-name> dwr-invoker </servlet-name>
<servlet-class> uk.ltd.getahead.dwr.DWRServlet</servlet-class >
<init-param>
<param-name> debug</param-name >
<param-value> true</param-value >
</init-param>
<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>
</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/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="SendMsg">
<param name="class">sugar.dwr.MessagePush</param>
</create>
</allow>
</dwr>
消息的推送方法MessagePush.java
package sugar.dwr;

import java.util.Collection;

import org.directwebremoting.Browser;
import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;

public class MessagePush {
public void send(final String content) {
Runnable run = new Runnable() {
private ScriptBuffer script = new ScriptBuffer();

public void run() {
System.out.println(content);
// 设置要调用的 js及参数
script.appendCall("show", content);
// 得到所有ScriptSession
Collection<ScriptSession> sessions = Browser
.getTargetSessions();
// 遍历每一个ScriptSession
for (ScriptSession scriptSession : sessions) {
scriptSession.addScript(script);
}
}
};
// 执行推送
Browser.withAllSessions(run);

}

}
发送的页面sendMsg.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%String SITE_ROOT= request.getContextPath(); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<%=SITE_ROOT%>/dwr/util.js"></script>
<script type="text/javascript" src="<%=SITE_ROOT%>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=SITE_ROOT%>/dwr/interface/SendMsg.js"></script>
<script type="text/javascript" src="<%=SITE_ROOT%>/jquery.js"></script>
<script type="text/javascript">
$(function() {
dwr.engine.setActiveReverseAjax(true);
$("#but").click(function() {
SendMsg.send($("#msg").val());
});
});
</script>
<title>Insert title here</title>
</head>
<body>
<input type="text" id="msg" />
<input type="button" value="发送" id="but" />
</body>
</html>
接收的页面showMsg.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%String SITE_ROOT= request.getContextPath(); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<%=SITE_ROOT%>/dwr/interface/SendMsg.js"></script>
<script type="text/javascript" src="<%=SITE_ROOT%>/dwr/util.js"></script>
<script type="text/javascript" src="<%=SITE_ROOT%>/dwr/engine.js"></script>

<script type="text/javascript" src="<%=SITE_ROOT%>/jquery.js"></script>
<script type="text/javascript">

</script>
<body >
dwr接收<br />
<div id="content" style=" width: 200px ;height: 30px;border : 1px solid ; text-align: center ; padding: 5px;"></div>
<script type="text/javascript" >
//这个方法用来启动该页面的ReverseAjax功能
dwr.engine.setActiveReverseAjax( true);
//设置在页面关闭时,通知服务端销毁会话
dwr.engine.setNotifyServerOnPageUnload( true);
//这个函数是提供给后台推送的时候 调用的
function show(content){
alert(content);
$( "#content" ).text(content);
}
</script>
</body >

</html>
我的问题是发送的时候,JAVA类可以正常接收到,就是在推送后,接收的页面没有任何反应,也就是没有推送到页面,我也试过指定到具体的页面,也是不行,不知道为什么
...全文
375 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧