0

JBoss AS 6 で実行するアプリケーションで Cometd ライブラリを使用する予定です。そのため、cometd 2.4.0 をダウンロードし、example war (cometd-demo/target から) を AS にデプロイしようとしました。これは変更なしでは不可能であることを認識していたので、web.xml に変更を加えました。

  1. web-app タグで servlet 3.0 に変更されました (本来は 2.5 です)。CometD faq answerの完全なタグを使用しました。また、この説明に基づいて、web.xml に既にあった継続フィルターのコメントを外しました。

  2. 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でサンプルを動作させることができましたか? ここで何が間違っていましたか?

4

2 に答える 2

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 から

于 2012-04-20T11:42:40.877 に答える
0

web.xml から継続フィルターを削除しても、同じセットアップと同じ問題があります。

Tomcat 7 での複数クライアントの問題について不平を言っている cometd-users グループのスレッドを見つけました。その原因は、"application/json" に設定されていない Content-Type に関する Tomcat のバグのようです。ただし、パケットを検査したところ、JBossAS6 ではコンテンツ タイプがサーバー応答で正しく設定されています。

アップデート

Jetty 7 を使用してみましたが、問題はなくなりました。「複数のクライアント」の問題は、Tomcat と JBoss6 AS に影響します

于 2012-06-19T09:01:39.273 に答える