数据推送之comet4j遇到的405错误信息

这两天了解了一下关于服务器推送的问题,在网上查了很多,相比之下comet4j比较符合自己的要求,即在http://code.google.com/p/comet4j/wiki/HelloWorld上下载了一个demo.并按相关的要求进行了配置。 下面说一下期间遇到的一个问题吧: 

demo部署好后,进行访问出现如下图的问题:

刚看到405错误的时候,按照习惯立马就想到是不是doget或dopost没有写呢? 但是查看web.xml的时候发现不请求的是对tomcat支持的一个jar包。但是想想jar不会出现这么低级的错呀.于是就开始分析配置。

从头开始说起吧.因为comet4j是在new IO方式下工作的,于是加入了

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

因为加入的配置中port=8080,而tomcat用的也是8080,导致启动tomcat时port冲突报错。于是改了tomcat的端口为8888,tomcat可以正常启动,页面也可以正常访问,但报上面的错误.于是就想为什么会报405异常呢? 就这样捣了半天,还是没解决,放置了一天没去管,但但想想还是不甘心.今天终于解决了。

因为那段错误,走了条弯路.总想着可能是jar包问题.其实已经很明确的说明了问题源.也就是端口,我的tomcat端口是8888,配置的comet4j是在8080,那么我们访问的时候也应该访问8080.故我就当独将报错的那段url的端口改成8080改去访问,能够返回数据.呃...这就怪了,一反映就是 是不是跨域了呢?但是他们是在一个项目里面呀,怎么会出现跨域呢?再三的思索,comet4j的工作方式.噢、突然豁然开朗,既然用的是new io还配置了单独的端口,那么访问项目时的端口直接8080不就得了吗? 一测试,果然是这样。所以在comet4j中项目工作时访问的端口是comet4j配置的端口,而不是tomcat服务器的端口。

哈... 终于解决了,归根还是由于自己没有理解comet4j的工作方式. demo解决了,现在就等着在实际项目中用了.

原文地址:https://www.cnblogs.com/a-really/p/3506123.html