【问题标题】:Cometd dojo application - HTTP 408 with glassfishCometd dojo 应用程序 - 带有 glassfish 的 HTTP 408
【发布时间】:2012-11-05 12:32:04
【问题描述】:

我配置和开发了一个内网应用,它结合了:spring 3.0.5(包括安全)+ CometD 2.3.1。

为了设置 cometd,我提到了: http://docs.cometd.org/2.4.3/reference/#java_server_services_integration_spring

当我在码头运行我的应用程序时,一切正常。但是当我尝试在 glassfish v2 中运行它时,我“随机”得到 HTTP 408 。 server.log 中的错误:

    [#|2012-11-02T15:43:50.428+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=17;_ThreadName=httpSSLWorkerThread-9000-0;_RequestID=eb9ebc97-ac0f-48fe-8793-cfc9fd3e7b3a;|StandardWrapperValve[default]: PWC1406: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
    at org.apache.coyote.tomcat5.CoyoteResponseFacade.sendError(CoyoteResponseFacade.java:433)
    at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:141)
    at org.springframework.security.web.context.SaveContextOnUpdateOrErrorResponseWrapper.sendError(SaveContextOnUpdateOrErrorResponseWrapper.java:54)
    at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:740)
    at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:384)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

从 IE 客户端的角度来看,我的 cometD 连接不稳定:

13:16:16 - CometD Connection Established
13:16:16 - CometD Connection Broken
13:16:17 - CometD Connection Established
13:16:17 - CometD Connection Broken
13:16:20 - CometD Connection Established
13:16:20 - CometD Connection Broken
13:16:21 - CometD Connection Established
13:16:21 - CometD Connection Broken
13:16:22 - CometD Connection Established
13:16:23 - CometD Connection Broken

但尽管出现错误消息,cometd 连接仍然有效:订阅操作正常,并且已成功从服务器接收到通知。

注意:我在同一个 glassfish 域中部署了示例 dojo-chat 应用程序(我将其作为模型),它运行良好!

我可能错过了什么?

【问题讨论】:

    标签: http dojo glassfish comet


    【解决方案1】:

    其实我在 cometD 示例 WAR(在 web.xml 文件中)中找到了答案:

    <!-- Portability Filter, needed only to run on non Jetty or non Servlet-3.0 containers -->
    <filter>
        <filter-name>continuation</filter-name>
        <filter-class>org.eclipse.jetty.continuation.ContinuationFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>continuation</filter-name>
        <url-pattern>/cometd/*</url-pattern>
    </filter-mapping>
    

    此过滤器不在我的 web.xml 中。 我不明白的一点是演示应用程序运行良好(使用相同的 servlet 容器)而过滤器被评论的原因?!?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      相关资源
      最近更新 更多