从EJB层访问pushcontext(Access pushcontext from EJB-tie

2019-06-27 21:34发布

即时通讯使用Primefaces推(以3.4的新事物)与JSF2和EJB3一起。 单独的.war和ejb.jar

现在我需要触发来自EJB层的首要推送事件。 什么是干净的方法来做到这一点? 我能想到的一些选项:

  1. 调用EJB方法时ManagedBean向下穿过一个回调接口
  2. 在Web层和EJB,JMS消息监听发送消息。
  3. 托管bean来分析从EJB方法调用返回的数据,如果条件得到满足做俯卧撑。

Basicly的问题是在哪里把下面的代码?

PushContext pushContext = PushContextFactory.getDefault().getPushContext();
pushContext.push("/notifications", new FacesMessage(summary, detail));  

Answer 1:

什么我有工作,我没有去任何上述我的想法,从EJB层访问气氛所需的API刚刚添加的依赖。

MANIFEST.MF的ejb.jar:

Manifest-Version: 1.0
Class-Path: 
atmosphere-runtime-1.0.1.jar 
atmosphere-compat-jbossweb-1.0.1.jar
atmosphere-compat-tomcat7-1.0.1.jar 
atmosphere-compat-tomcat-1.0.1.jar 

在pom.xml中为ejb.jar和application.ear

    <dependency>
        <groupId>org.atmosphere</groupId>
        <artifactId>atmosphere-runtime</artifactId>
        <version>1.0.1</version>
        <scope>provided</scope>
    </dependency>

然后简单地从primefaces来源为ejb.jar复制两个包

org.primefaces.push
org.primefaces.json

因为在pom.xml中添加primefaces为ejb.jar引起

Missing artifact org.primefaces:primefaces


文章来源: Access pushcontext from EJB-tier