Java 从另一个servlet获取Primefaces事件总线
我正在使用Primefaces Websocket功能;它是使用大气框架实现的 我在我的webapp中定义了两个servlet:第一个用于前端(在那里我使用Primefaces和websocket功能),第二个用于API功能(在那里我使用Jersey和JAXRS功能) 我需要做的是:当一个请求被发布到一个资源(使用API servlet)时,我需要使用WebSocket向所有连接的客户端发送一条消息 在第二个servlet中,在拦截post请求的方法中,我尝试了以下解决方案:Java 从另一个servlet获取Primefaces事件总线,java,jsf,servlets,jsf-2,primefaces,Java,Jsf,Servlets,Jsf 2,Primefaces,我正在使用Primefaces Websocket功能;它是使用大气框架实现的 我在我的webapp中定义了两个servlet:第一个用于前端(在那里我使用Primefaces和websocket功能),第二个用于API功能(在那里我使用Jersey和JAXRS功能) 我需要做的是:当一个请求被发布到一个资源(使用API servlet)时,我需要使用WebSocket向所有连接的客户端发送一条消息 在第二个servlet中,在拦截post请求的方法中,我尝试了以下解决方案: EventBus
EventBus eventBus = EventBusFactory.getDefault().eventBus();
eventBus.publish("subscriber/*", "This message is for all connected clients, through websockets");
它不起作用,似乎是由EventBusFactory
提供的EventBus
实例提供程序与连接所有用户的实例提供程序不同。消息没有广播
怎么可能呢
如果我尝试广播来自第一个servlet的消息,与客户端使用WebSocket的位置相同,所有这些都正常工作。我已经解决了这个问题。
简单使用
EventBus eventBus = EventBusFactory.getDefault().eventBus();
eventBus.publish("subscriber/*", "This message is for all connected clients, through websockets");
在第二个servlet上,将解析EventBus
。
我犯了一个语法错误,因此第二个servlet没有正确解析EventBus
因此,在编写正确的订户主题时要小心,在我的例子中是“订户/*”,以便拦截在第三方servlet中创建的所有端点