2017-07-13 6 views
0

OSGiバンドルにパッケージ化されたJSR-356(WebSocket API)コードがあります。サーブレットは、必要に応じてApache Felixを介してコードをロードします。OSGiバンドルからServletRequestListenerを登録

私は、通常のWeb記述子に置くServletRequestListener、登録したい:バンドルは機能しませんクラスパスにはないので

<listener> 
    <listener-class>path.to.my.RequestListener</listener-class> 
</listener> 

をけど。

どのようにしてServletRequestListenerを登録できますか?私は、注釈をスキャンする方法があるかもしれないと思っていますが、それを設定する方法がわかりません。私の他の懸念事項は、多くのユーザーが起動時間を改善するためにスキャンを無効にすることです。

リスナーの仕事は、HttpSessionを初期化して、WebSocketハンドシェイクでServletContextを取得できるようにすることです。リスナーなしでそれを達成する方法があれば、それは私のためにさらに良く働くでしょう。

+0

設定を少し良く説明できますか?バンドルがクラスパスにないと言っています。クラスパスでどのようにバンドルを行うことができますか? OSGiには、単一のクラスパスもありません。 –

+0

@ChristianSchneider私は、なぜweb.xmlが機能しないのかを明確にしようとしていました。混乱を避けるためにこの声明を削除しました。 – isapir

答えて

0

これが仕様で完全に解決できるかどうかはわかりません。 Pax webにはWebソケットサポートがあります。だから、これはあなたを助けることができるかもしれません:

を参照してくださいpax web websocket example

+0

ありがとうございますが、リクエストごとにHttpSessionを初期化しますか?そしてもしそうなら、どうですか?それは私がそれ以外の仕事をしているので、ここの主な目標です。 – isapir

関連する問題