1

jsf2 と ejb3 と一緒に Primefaces Push (3.4 の新しいもの) を使用しています。.war と ejb.jar を分離する

ここで、ejb 層からプライムプッシュ イベントをトリガーする必要があります。これを行うためのクリーンな方法は何ですか? 私が考えることができるいくつかのオプション:

  1. ManagedBean は、ejb メソッドの呼び出し時にコールバック インターフェイスを渡します
  2. メッセージを送信するための Web 層および ejb の JMS メッセージリスナー。
  3. ejb メソッドの呼び出しから返されたデータを分析し、条件が満たされた場合にプッシュするマネージド Bean。

基本的に問題は、コードの下にどこに置くかです。

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

1 に答える 1

0

私が取り組んでいることは、上記のアイデアのいずれにも従わず、EJB 層から雰囲気 API にアクセスするために必要な依存関係を追加しただけです。

ejb.jar の MANIFEST.MF:

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 

ejb.jar および application.ear の pom.xml 内

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

次に、2 つのパッケージを primefaces ソースから ejb.jar にコピーするだけです。

org.primefaces.push
org.primefaces.json

ejb.jar の pom.xml に primefaces を追加すると、

Missing artifact org.primefaces:primefaces
于 2012-10-21T14:59:14.793 に答える