从EJB层访问pushcontext

时间:2012-09-06 07:23:40

标签: jsf-2 primefaces ejb atmosphere

我使用Primefaces Push(3.4中的新东西)和jsf2和ejb3。单独.war和ejb.jar

现在我需要从ejb层触发一个推送事件。干净的方法是什么?我能想到的一些选择:

  1. ManagedBean在调用ejb方法时传递回调接口
  2. Web层中的JMS messagelistener和发送消息的ejb。
  3. 托管bean,用于分析来自ejb方法调用的返回数据,并在满足条件时进行推送。
  4. 基本上问题是在哪里放下代码?

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

1 个答案:

答案 0 :(得分:0)

我的工作是什么,我没有考虑上面的任何想法,只是添加了从EJB层访问氛围API所需的依赖项。

MANIFEST.MF for 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中为ejb.jar添加了primefaces导致了

Missing artifact org.primefaces:primefaces