2

変更がないかディレクトリを監視するためにJnotifyを使用する(おそらくは提案を受け入れる)Tomcat内に含まれるサーブレットを作成したいと思います。

私はJava7とNIOのものを使用しますが、本番システムはUbuntu 10.04を実行します。現在、デプロイメントの理由から、ほとんどがリポジトリとdebパッケージにあるものを使い続けたいと思います。

私の質問は、JnotifyをTomcatサービスに統合する方法に関するものです。現在の私の考えでは、GenericServletクラスを使用してサーブレットを作成します。このクラスは、init()メソッドで必要なディレクトリに監視を設定します。次に、ディレクトリでアクティビティを取得するたびに、どういうわけか(これは私が理解していないビットです)service()メソッドを呼び出します。次に、ディレクトリに対してアクションを実行するリスナーを作成できます(この場合はファイルを移動します)

または、新しいプロトコルハンドラーを作成することもできますが(たとえば、PoolTcpEndpointを開始点として使用します)、プロトコルではないため、これはばかげているようです。

または、より良い方法がありますか?Tomcatを使用する唯一の理由は、他の多くのロジックがTomcatサーバー内に保持されていることです。Javaをデーモン化し、別の方法でイベント駆動型アーキテクチャを取得する方法がある場合、私は心を開いていますが、たとえばJettyを使用するようなことはしたくありません。これは、不可能なサポートするスタック。

あなたの考えを聞くのを楽しみにしています。

ありがとう

4

1 に答える 1

0

私がはっきりしていないのは、この機能をどの程度可視化したいかということです。(単一のサーブレット内? Tomcat インスタンス内のすべてのサーブレット? Tomcat インスタンス外のリソース?)

他のサーブレットの場合、(サーブレットから) インターフェースをグローバル JNDI に登録できます。これは、他のサーブレットによって取得され、リスナーを追加することができます。

Tomcat の外部のリソースに対して、RMI オブジェクトまたは単純な REST タイプのサービスを COMET のようなポーリングで公開できます。サーブレット 3.0 にアクセスできる場合は、非同期呼び出しを実装することもできます。

于 2012-03-12T16:50:47.933 に答える