2012-03-10 63 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,你甚至可以实现异步调用。