即时通讯使用Primefaces推(以3.4的新事物)与JSF2和EJB3一起。 单独的.war和ejb.jar
现在我需要触发来自EJB层的首要推送事件。 什么是干净的方法来做到这一点? 我能想到的一些选项:
- 调用EJB方法时ManagedBean向下穿过一个回调接口
- 在Web层和EJB,JMS消息监听发送消息。
- 托管bean来分析从EJB方法调用返回的数据,如果条件得到满足做俯卧撑。
Basicly的问题是在哪里把下面的代码?
PushContext pushContext = PushContextFactory.getDefault().getPushContext();
pushContext.push("/notifications", new FacesMessage(summary, detail));
什么我有工作,我没有去任何上述我的想法,从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