【问题标题】:Tomcat Servlet Jnotify directory monitoringTomcat Servlet Jnotify 目录监控
【发布时间】:2012-03-10 23:32:48
【问题描述】:

我想创建一个包含在 Tomcat 中的 servlet,它使用 Jnotify(可能但对建议开放)来监视目录的更改。

我会使用 Java 7 和 NIO 的东西,但我们的生产系统运行的是 Ubuntu 10.04,我想坚持使用目前主要在存储库和 deb 包中的东西,因为部署原因。

我的问题涉及如何将 Jnotify 集成到我的 Tomcat 服务器中。我目前的想法是,我使用 GenericServlet 类创建了一个 servlet,该类在 init() 方法中设置了我想要的目录上的监视。然后,当我在目录上获得活动时,我以某种方式(这是我不明白的一点)调用 service() 方法。然后我可以有一个监听器,它对目录执行操作(在这种情况下移动文件)

或者我可以创建一个新的协议处理程序(例如使用 PoolTcpEndpoint 作为起点),但它不是一个协议,所以这看起来很愚蠢。

或者有更好的方法吗?使用 Tomcat 的唯一原因是我们的许多其他逻辑都保存在我们的 Tomcat 服务器中。如果有一种方法可以守护 Java 并以另一种方式获得事件驱动的架构,那么我是开放的,但我不想做像使用 Jetty 这样的事情,因为这将是另一项技术添加到堆栈以支持这是不可能的。

期待听到您的想法。

谢谢

【问题讨论】:

    标签: java tomcat servlets jnotify


    【解决方案1】:

    我不清楚的是你希望这个功能有多明显? (在单个 servlet 内?到 Tomcat 实例内的所有 servlet?到 Tomcat 实例外的资源?)

    如果您的其他 servlet,您可以(从 servlet)在 Global JNDI 中注册一个接口,然后其他 servlet 可以检索该接口,并可以向其中添加侦听器。

    对于 Tomcat 之外的资源,您可以公开一个 RMI 对象或一个简单的 REST 类型的服务,带有类似 COMET 的轮询。如果您可以访问 servlet 3.0,您甚至可以实现异步调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2010-09-11
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多