我打算在運行於JBoss AS 6上的應用程序中使用Cometd庫。因此我下載了cometd 2.4.0並嘗試將example war(從cometd-demo/target)部署到我的AS。我知道,這是不可能沒有修改,所以我沒有在web.xml中的變化:改到在Servlet web應用程序標籤3.0JBoss 6上的CometD演示
(它最初是2.5)。從CometD faq answer使用完整標籤。還取消了已註冊到web.xml中的繼續過濾器,基於this description
基於faq answer,添加了異步支持的標記。但是,這會導致問題:如果我只取消註釋,則不能分析web.xml。我發現這是由於XML中的標籤順序所致,因此移動異步支持標記了訂單,僅在加載啓動標記。然而,Jboss的還是拋出異常:
錯誤 [org.apache.catalina.core.ContainerBase [jboss.web] [本地主機] [/的cometd-演示2.4.0]。 [的cometd]] Servlet.service()進行的servlet的cometd拋出異常: java.lang.IllegalStateException:正在使用由該請求不支持異步操作
ERROR [org.apache servlet或過濾器.catalina.core.ContainerBase。[jboss.web]。[localhost]。[/ cometd-demo-2.4.0]。[cometd]] Ser vlet.service()進行的servlet的cometd拋出異常: 拋出java.lang.ClassNotFoundException: org.eclipse.jetty.server.AbstractHttpConnection從 BaseClassLoader @ 12a54b
,我用的是here完整的web.xml文件。
儘管報告了所有錯誤,但沒有我的Jboss運行示例,但通過觀看螢火蟲,我可以看到它可以快速合併而不是長池。看來,服務器認爲該瀏覽器有多個連接打開,這是不是這種情況(見下面的JSON):
[{"id":"137","successful":true,"advice":{"interval":2000,"reconnect":"retry","multiple-clients":true,"timeout":20000},"channel":"/meta/connect"}]
這兒還有沒有人管理,以使示例與JBoss AS6以及如何工作的?我在這裏做錯了什麼?