zoukankan      html  css  js  c++  java
  • 数据推送之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解决了,现在就等着在实际项目中用了.

  • 相关阅读:
    03_ if 练习 _ little2big
    uva 11275 3D Triangles
    uva 12296 Pieces and Discs
    uvalive 3218 Find the Border
    uvalive 2797 Monster Trap
    uvalive 4992 Jungle Outpost
    uva 2218 Triathlon
    uvalive 3890 Most Distant Point from the Sea
    uvalive 4728 Squares
    uva 10256 The Great Divide
  • 原文地址:https://www.cnblogs.com/a-really/p/3506123.html
Copyright © 2011-2022 走看看