当我在Message驱动的bean上获得JMS消息时,如何通知cometd服务器实例?

时间:2014-03-05 21:28:46

标签: java servlets ejb atmosphere cometd

我在某处读过Cometd是特定于容器的,我们无法注入EJB容器。我有一个应用程序,其中定义了MDB,并且收到的消息以某种方式应该发送到Web客户端。有可能吗?

我感谢任何投入。感谢。

1 个答案:

答案 0 :(得分:1)

CometD 特定于容器,它可以在任何使用异步Servlet的Servlet 3容器中工作。

CometD依赖于Jetty类来实现它,并且在Jetty中部署时扩展性最好,但有些用户在Tomcat,GlassFish等中部署CometD。

话虽如此,如果您将CometD部署到JEE服务器并拥有MDB,您可以轻松地将MDB消息转换为CometD消息,并让CometD将其发送给客户端。

如何将MDB连接到CometD的实际细节取决于您使用的框架(例如Spring,CDI,自定义等),但通常MDB需要查找/通知CometD服务,并拥有CometD服务播放CometD消息。

您可以找到CometD server-side tutorial非常相似(尽管它不使用MDB)来满足您的需求。在该教程中,MDB的角色由StockPriceEmitter类播放。

另请参阅CometD reference manual以获取更多信息。