2012-03-10 45 views
2

我想要創建一個servlet以包含在Tomcat中,它使用Jnotify(可能但是開放的建議)來監控目錄中的更改。Tomcat Servlet Jnotify目錄監控

我會使用Java 7和NIO的東西,但我們的生產系統運行Ubuntu 10.04,我想堅持目前的東西,主要是在存儲庫和deb包中出於部署的原因。

我的問題涉及到如何將Jnotify集成到我的Tomcat servelts中。我認爲目前我使用GenericServlet類創建了一個servlet,它在init()方法中設置了我想要的目錄上的監視。然後我以某種方式(這是我不明白的一點)在我獲得目錄活動時調用service()方法。或者我可以創建一個新的協議處理程序(例如使用PoolTcpEndpoint作爲起點),但它不是一個協議,所以這似乎是笨。

還是有更好的辦法?使用Tomcat的唯一原因是我們的許多其他邏輯都在我們的Tomcat服務器中。如果有一種方式來Daemonise Java並以另一種方式獲得事件驅動的體系結構,那麼我是開放的,但我不想做類似使用Jetty的事情,因爲這將是另一項技術添加到堆棧來支持這是不可能的。

期待聽到你的想法。

感謝

回答

0

我不清楚的是你要如何看到這個功能是位? (在單個servlet中?在Tomcat實例中的所有servlet中?在Tomcat實例以外的資源中?)

如果您的其他servlet可以在Global JNDI中註冊(從servlet)一個接口,被其他servlet檢索並且可以添加一個監聽器。

對於Tomcat之外的資源,您可以使用輪詢等COMET公開RMI對象或簡單的REST類型服務。如果你有權訪問servlet 3.0,你甚至可以實現異步調用。