我在某处读过Cometd是特定于容器的,我们无法注入EJB容器。我有一个应用程序,其中定义了MDB,并且收到的消息以某种方式应该发送到Web客户端。有可能吗?
我感谢任何投入。感谢。
答案 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以获取更多信息。