`
cuisuqiang
  • 浏览: 3962585 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3671987
社区版块
存档分类
最新评论

pushlet 之 Comet框架Plushlet使用中的问题

阅读更多

Plushlet相关介绍不再扯淡

 

我在将Plushlet集成到我的Web项目中时出现了 [pushlet] problem retrieving XML data: 这个状态栏提示错误

经过对比和调试,发现一些问题总结下来提供参考

 

第一:

我对比了一下Plushlet提供的示例工程和在MyEclipse上创建的工程发现他们的 web.xml 头信息配置有所不同!

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

 

而创建的工程配置的是

<?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,所以我们应该保持下面的内容,而不是用示例工程的配置文件头

 

第二:

其次,在他的 ajax-pushlet-client.js 脚本中,不知道是环境原因还是写法原因,有一段脚本是有问题的,他会造成你的请求路径错误!

我看了一下原来JS文件中的初始化方法

	_init: function () {
		PL._showStatus();
		PL._setStatus('initializing...');
		/*
			Setup Cross-Browser XMLHttpRequest v1.2
		   Emulate Gecko 'XMLHttpRequest()' functionality in IE and Opera. Opera requires
		   the Sun Java Runtime Environment <http://www.java.com/>.

		   by Andrew Gregory
		   http://www.scss.com.au/family/andrew/webdesign/xmlhttprequest/

		   This work is licensed under the Creative Commons Attribution License. To view a
		   copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/ or
		   send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California
		   94305, USA.

		   */
		// IE support
		if (window.ActiveXObject && !window.XMLHttpRequest) {
			window.XMLHttpRequest = function() {
				var msxmls = new Array(
						'Msxml2.XMLHTTP.5.0',
						'Msxml2.XMLHTTP.4.0',
						'Msxml2.XMLHTTP.3.0',
						'Msxml2.XMLHTTP',
						'Microsoft.XMLHTTP');
				for (var i = 0; i < msxmls.length; i++) {
					try {
						return new ActiveXObject(msxmls[i]);
					} catch (e) {
					}
				}
				return null;
			};
		}

		// ActiveXObject emulation
		if (!window.ActiveXObject && window.XMLHttpRequest) {
			window.ActiveXObject = function(type) {
				switch (type.toLowerCase()) {
					case 'microsoft.xmlhttp':
					case 'msxml2.xmlhttp':
					case 'msxml2.xmlhttp.3.0':
					case 'msxml2.xmlhttp.4.0':
					case 'msxml2.xmlhttp.5.0':
						return new XMLHttpRequest();
				}
				return null;
			};
		}

		PL.pushletURL = PL._getWebRoot() + 'pushlet.srv';
		PL._setStatus('initialized');
		PL.state = PL.STATE_READY;
	},

 

PL.pushletURL是我们请求的路径,而方法 PL._getWebRoot() 由于页面写法各尽不同,有时取到的是 null,这样你的请求路径会有问题,造成无法请求!

 

我把这行代码改为了不需要从方法再取得根路径

PL.pushletURL = 'pushlet.srv';

 

第三:

在你的JSP页面中,如果你没有写

<base href="<%=basePath%>"> 

 

这个标签,那么就算你其他正常,他也会提示无法取得数据!

 

请您到ITEYE看我的原创:http://cuisuqiang.iteye.com

或支持我的个人博客,地址:http://www.javacui.com

 

6
0
分享到:
评论
2 楼 zjd621102 2014-07-18  
中第三点
1 楼 vincentedlin 2013-12-10  
哥们,我按照你上面的几条修改之后,还是有
[pushlet] problem retrieving XML data:
这个错误提示,求指教

相关推荐

    comet 框架 之 pushlet

    在pushlet-2.0.3这个压缩包中,可能包含了Pushlet框架的源代码、文档、示例代码和配置文件等,用于帮助开发者理解和使用Pushlet。开发者可以通过阅读源码了解其工作原理,参考示例快速入门,通过配置文件定制Pushlet...

    pushlet 和comet 资料介绍

    Pushlet是Comet技术的一种具体实现,它们都旨在解决Web应用中的实时性问题。在服务器端,Pushlet使用`EventSource`和`EventSourceManager`来管理和处理事件,`EventSource`实现了`Runnable`接口,可以在多线程环境中...

    pushlet框架做的小例子

    通过这个小例子,你可以直观地了解Pushlet框架的工作流程,并学习如何在自己的项目中集成和使用Pushlet。 **总结** Pushlet框架为Java开发者提供了一种实现服务器到客户端实时数据推送的有效工具,通过克服HTTP的...

    开源的Comet框架Pushlet.zip

    Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模型:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 ...

    服务器推送pushlet讲解

    分析这个文件可以帮助你更好地理解和使用Pushlet框架,例如,你可以找到服务器如何处理推送事件,客户端如何建立连接,以及如何调试和解决问题的线索。 总之,Pushlet作为Comet的一种实现,提供了高效且灵活的...

    comet pushlet 例子

    在实际应用中,使用Comet Pushlet时,开发者需要了解如何配置和初始化Pushlet服务器,编写客户端代码来建立持久连接,并监听来自服务器的数据。同时,还要考虑网络环境和服务器性能的影响,因为长时间保持连接可能会...

    pushlet 之 Pushlet使用手把手实例

    总结,Pushlet 提供了一种高效、简单的实现服务器推送的解决方案,通过本文档中的实例,你能够掌握如何在自己的项目中使用Pushlet进行实时数据传输。然而,Pushlet也存在一些限制,比如对HTTP/1.1的不兼容问题,以及...

    基于pushlet做的comet

    基于pushlet实现的comet技术的服务器推技术。新增了接口和实现类,可直接调用点对点,群发等功能。注意Session类当中create方法中王hashtable当中存入当前登录用户id和sessionid键值对。启动后会发现的。

    pushlet使用说明(包括中文乱码)

    Pushlet 是一个基于 Comet 技术的框架,用于实现在 Web 应用中服务器向客户端实时推送数据的功能。Comet 是一种反向 AJAX 技术,允许服务器在客户端请求未结束时保持连接开放,从而可以在有新数据时立即推送到客户端...

    通过推送机制(Tomcat comet,pushlet)实现进度条

    Pushlet是另一种在Tomcat中实现Comet效果的方法,它是由Apache Cocoon项目开发的一个小型框架。Pushlet框架提供了一种简单的方式,让服务器可以持续发送数据到客户端,同时客户端可以通过订阅(subscribe)和取消...

    pushlet.jar 和示例工程

    "pushlet.jar 和示例工程"是一个专注于实现服务器端向客户端主动推送消息的框架,它在Web开发领域中扮演着重要角色。Pushlet框架的设计旨在克服传统的HTTP协议中客户端请求、服务器响应的被动通信模式,转而采用一种...

    pushlet_向在线的特定用户发送消息的单线程应用

    标题中的“pushlet”是指Pushlet,一种基于Comet技术的服务器推送机制。Comet是一种Web应用程序模型,它允许服务器向客户端(通常是浏览器)实时推送数据,而不是传统的HTTP请求-响应模式,即客户端需要不断轮询...

    pushlet的JAR包和文档

    【Pushlet的JAR包和文档】是一组与实时通信技术相关的资源,主要涉及Pushlet项目,这是一种基于Java实现的Comet风格的Web应用工具。Pushlet是早期实现服务器推送(Server-Side Push)技术的一个重要框架,它利用HTTP...

    pushlet简单demo,导入即可运行

    5. **Comet4j**:Comet4j是另一个基于Java的Comet(服务器推送)框架,它提供了一种更高效、更易于使用的解决方案,用于处理长连接和服务器推送。Comet4j支持多种推送模式,包括HTTP长连接、流式HTTP和WebSocket等。...

    使用Ext Pushlet 实现的点对点聊天功能最新

    前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='piccUtil'; // 发送消息的地址 Ext.fcontent='fcontent'; // 显示窗口或有新消息时, 显示好友ID的区域 ...

    使用Ext Pushlet 实现的点对点聊天功能

    前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='piccUtil'; // 发送消息的地址 Ext.fcontent='fcontent'; // 显示窗口或有新消息时, 显示好友ID的区域 ...

    pushlet 例子

    Pushlet 是一个基于Java的实时通信框架,它主要用于实现服务器向客户端推送数据的Comet技术。Comet是一种优化的Web通信模式,它打破了传统的HTTP请求/响应模型,使得服务器能够主动向客户端发送数据,而无需客户端...

    pushlet.jar(2.0.4)

    Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 ...

    pushlet实现简单的用户聊天

    这通常涉及到创建一个持久的HTTP连接,使用WebSocket或Comet技术(Pushlet使用的是Comet)。 3. **消息处理**:在服务器端,你需要创建一个处理聊天消息的逻辑,包括接收新消息、存储消息、以及将消息推送给正确的...

    pushlet文档和项目

    7. **Comet技术**:Pushlet是早期实现Comet技术的库之一。Comet是一种让服务器能长时间保持HTTP连接开放,以便向客户端推送数据的技术,这在实时应用中非常有用,比如股票交易、即时聊天和在线游戏等。 在实际应用...

Global site tag (gtag.js) - Google Analytics