【问题标题】:CometD demo on JBoss 6JBoss 6 上的 CometD 演示
【发布时间】:2012-10-20 17:43:10
【问题描述】:

我计划在运行于 JBoss AS 6 的应用程序中使用 Cometd 库。因此我下载了 cometd 2.4.0 并尝试将示例战争(来自 cometd-demo/target)部署到我的 AS。我知道如果不进行修改这是不可能的,所以我在 web.xml 中进行了更改:

  1. 在 web-app 标签中更改为 servlet 3.0(最初是 2.5)。使用来自CometD faq answer 的完整标签。基于 this description

  2. 的 web.xml 中已经存在的未注释延续过滤器
  3. 基于faq answer,添加了支持异步的标签。但是,这会导致问题:如果我只是取消注释,则无法解析 web.xml。我发现这是由于 XML 中的标签顺序造成的,因此将 async-supported 标签向下移动,就在 load-on-startup 标签之后。但是,Jboss 还是会抛出异常:

错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cometd-demo-2.4.0].[cometd]] servlet cometd 的 Servlet.service() 抛出异常: java.lang.IllegalStateException:正在被处理的 servlet 或过滤器 此请求使用的不支持异步操作

错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cometd-demo-2.4.0].[cometd]] servlet cometd 的 Servlet.service() 抛出异常: java.lang.ClassNotFoundException: org.eclipse.jetty.server.AbstractHttpConnection 来自 BaseClassLoader@12a54b

我使用的完整 web.xml 文件是 here

尽管报告了所有错误,但示例没有运行我的 Jboss,但是通过观察萤火虫,我可以看到它执行快速池而不是长池。似乎服务器认为浏览器打开了多个连接,但事实并非如此(见下面的 JSON):

[{"id":"137","successful":true,"advice":{"interval":2000,"reconnect":"retry","multiple-clients":true,"timeout":20000},"channel":"/meta/connect"}]

是否有人设法使示例与 JBoss as6 一起工作?如何?我在这里做错了什么?

【问题讨论】:

    标签: jboss6.x server-push cometd


    【解决方案1】:

    删除:

    <!-- 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

    【讨论】:

      【解决方案2】:

      即使我从 web.xml 中删除了延续过滤器,我也有相同的设置和相同的问题。

      我在 cometd-users 组上发现一个线程抱怨 Tomcat 7 上的多客户端问题,原因似乎是 Content-Type 的 Tomcat 错误未设置为“application/json”。 但是我检查了数据包,在 JBossAS6 上,服务器响应上的内容类型设置正确。

      更新

      我已经尝试使用 Jetty 7 并且问题消失了。 “多客户端”问题影响 Tomcat 以及 JBoss6 AS

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-19
        • 1970-01-01
        • 2011-02-24
        • 2018-01-25
        • 1970-01-01
        • 2016-06-23
        • 2019-09-25
        • 1970-01-01
        相关资源
        最近更新 更多