JBoss AS 6 で実行するアプリケーションで Cometd ライブラリを使用する予定です。そのため、cometd 2.4.0 をダウンロードし、example war (cometd-demo/target から) を AS にデプロイしようとしました。これは変更なしでは不可能であることを認識していたので、web.xml に変更を加えました。
web-app タグで servlet 3.0 に変更されました (本来は 2.5 です)。CometD faq answerの完全なタグを使用しました。また、この説明に基づいて、web.xml に既にあった継続フィルターのコメントを外しました。
faq answerに基づいて、async-supported タグを追加しました。ただし、これは問題を引き起こします。コメントを外すだけでは、web.xml を解析できません。これは XML のタグの順序によるものであることがわかったので、async-supportedタグの順序を、 load-on-startupタグの直後に移動しました。ただし、Jboss は依然として例外をスローします。
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cometd-demo-2.4.0].[cometd]] Servlet.service() for servlet cometd throwed exception: java. lang.IllegalStateException: このリクエストで使用されているサーブレットまたはフィルタは非同期操作をサポートしていません
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cometd-demo-2.4.0].[cometd]] Servlet.service() for servlet cometd throwed exception: java. lang.ClassNotFoundException: BaseClassLoader@12a54b からの org.eclipse.jetty.server.AbstractHttpConnection
私が使用する完全な web.xml ファイルはhereです。
例では、すべてのエラーが報告されているにもかかわらず、私の Jboss は実行されませんが、firebug を見ると、ロング プールではなくクイック プールが実行されていることがわかります。サーバーは、ブラウザーが複数の接続を開いていると認識しているようですが、そうではありません (以下の JSON を参照)。
[{"id":"137","successful":true,"advice":{"interval":2000,"reconnect":"retry","multiple-clients":true,"timeout":20000},"channel":"/meta/connect"}]
誰かがJBoss as6でサンプルを動作させることができましたか? ここで何が間違っていましたか?