2012-10-23 94 views
0

我们有许多托管不同Web应用程序的Tomcat容器。所有这些应用程序都使用共享库。我们需要能够触发此共享库的操作。在已部署的Tomcat Web应用程序中触发操作

这可以通过一个servlet完成,所有的应用程序都会在他们的web.xml文件中指定。操作可以通过URL触发。但是,这种方法看起来不太优雅。

我也研究过MBeans,但不确定这是否是他们要解决的问题。

赞赏这样做的任何最佳实践方法。详细的讨论选项,以帮助我通过这个想法会很好。

谢谢。

回答

1

我个人不明白为什么使用HTTP POST来触发某些东西是不对的,只要你实现了一个体面的认证机制。

认为MBean是一个更强大的监视钩子。传统上,监控是只读活动,但使用MBeans,您可以公开一个setter并以任意值调用它(JMX可以提供身份验证btw)。

另一个备选方案:

  • RMI(呸!)
  • 轮询一些预先定义URI(呸!)或JNDI
  • 通过闲聊(或另一IM协议)
  • JMS
  • 通知

但是,如果不知道完整的上下文,很难建议。

+0

谢谢。带有HTTP通知的奇怪部分迫使每个Web应用程序将servlet包含在其web.xml文件中。这在我们的情况下会有点痛苦。我对JNDI选项感到好奇 - 你会怎么做呢?我一直认为JNDI是一个只读的地方,由容器在启动时配置。 MBean选项听起来也很有趣 - 理论上它似乎为web应用程序提供了一个挂钩, – user897210

+0

似乎正是我们所需要的。请注意,此时我们正在讨论相当有益的操作,例如强制缓存刷新。 – user897210

+0

将JNDI视为Multimap(嵌套HashMap)。您不得不定期轮询它,因为我不相信它会提供即时通知,除非您在那里绑定对象通知程序(侦听器)并通过它调用通知方法。对于像缓存刷新这样的东西,我认为MBean比JNDI更适合。但是,通过JMX公开MBean与公开servlet具有相似的开销。 – mindas

相关问题