1

PrimeFaces 5.0 に付属する PrimeFaces Push の使用を開始する予定です。Wildfly 8.1 を使用してhttp://www.primefaces.org/showcase/push/notify.xhtmlにある同じ例を実行しようとしましたが、バックエンド Bean からプッシュ メッセージを受信できません。

これが私がワイルドフライコンソールに持っているものです:

01:50:34,926 INFO [org.atmosphere.cpr.AtmosphereFramework] (Thread-261) Atmosphere の JavaScript クライアント 2.2.2 の最新バージョン 01:50:34,926 INFO [org.atmosphere.cpr.AtmosphereFramework] (Thread-261)

Atmosphere の最新バージョン 2.2.0-RC3 利用可能な Atmosphere の最新バージョン 2.1.7

01:50:37,447 ERROR [org.atmosphere.interceptor.JavaScriptProtocol] (default task-61) Invalid Atmosphere Version 2.2.0-javascript 01:50:37,448 WARN [org.atmosphere.websocket.protocol.SimpleHttpProtocol] (default task- 61) ステータス コード 400 以上 ステータス 501 メッセージ OK 01:50:41,957 INFO [stdout] (デフォルト タスク 62) 送信メッセージ

01:55:37,760 エラー [org.atmosphere.cpr.AsynchronousProcessor] (デフォルト タスク 63) リソースのキャンセルに失敗しました: 8cf3d711-00c2-4e52-9d78-97cd04c0b585: org.primefaces.push.impl での java.lang.NullPointerException。 PushEndpointHandlerProxy.onStateChange(PushEndpointHandlerProxy.java:241) [primefaces-5.0.jar:5.0] org.atmosphere.cpr.AsynchronousProcessor.invokeAtmosphereHandler(AsynchronousProcessor.java:492) [atmosphere-runtime-2.2.0-RC3.jar:2.2] .0-RC3] at org.atmosphere.cpr.AsynchronousProcessor.completeLifecycle(AsynchronousProcessor.java:444) [atmosphere-runtime-2.2.0-RC3.jar:2.2.0-RC3] at org.atmosphere.cpr.AsynchronousProcessor. endRequest(AsynchronousProcessor.java:548) [atmosphere-runtime-2.2.0-RC3.jar:2.2.0-RC3] at org.atmosphere.websocket.DefaultWebSocketProcessor.executeClose(DefaultWebSocketProcessor.java:676) [atmosphere-runtime-2.2.0-RC3.jar:2.2.0-RC3] at org.atmosphere.websocket.DefaultWebSocketProcessor.close(DefaultWebSocketProcessor.java:628) [atmosphere-runtime-2.2.0-RC3.jar] :2.2.0-RC3] at org.atmosphere.container.JSR356Endpoint.onClose(JSR356Endpoint.java:221) [atmosphere-runtime-2.2.0-RC3.jar:2.2.0-RC3] at io.undertow.websockets. jsr.UndertowSession.close(UndertowSession.java:181) [undertow-websockets-jsr-1.0.15.Final.jar:1.0.15.Final] io.undertow.websockets.jsr.UndertowSession.close(UndertowSession.java: 171) [undertow-websockets-jsr-1.0.15.Final.jar:1.0.15.Final] at io.undertow.websockets.jsr.FrameHandler$1.run(FrameHandler.java:93) [undertow-websockets-jsr- 1.0.15.Final.jar:1.0.15.Final] at io.undertow.websockets.jsr.ServerWebSocketContainer$1.run(ServerWebSocketContainer.java:303) [undertow-websockets-jsr-1.0.15.Final.jar:1.0.15.Final] at io.undertow.websockets.jsr.OrderedExecutor$ExecutorTask.run(OrderedExecutor.java:49) [undertow-websockets-jsr-1.0.15.Final.jar:1.0.15. Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55] jar:1.7.0_55] java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55] でjava:745) [rt.jar:1.7.0_55]java:745) [rt.jar:1.7.0_55]

PrimeFaces プッシュの web.xml 構成は次のとおりです。

   <context-param>
           <param-name>primefaces.PUSH_SERVER_URL</param-name>
           <param-value>http://127.0.0.1:8080</param-value>
   </context-param>

   <servlet>
           <servlet-name>Push Servlet</servlet-name>
           <servlet-class>org.primefaces.push.PushServlet</servlet-class>
           <load-on-startup>0</load-on-startup>
           <async-supported>true</async-supported>
   </servlet>

   <servlet-mapping>
           <servlet-name>Push Servlet</servlet-name>
           <url-pattern>/primepush/*</url-pattern>
   </servlet-mapping>

この問題を解決するためにご協力いただきありがとうございます。

4

1 に答える 1

1

Primefaces 5.0 と Atmosphere Runtime 2.2.0 を使用しても同じ問題が発生しました。

Atmosphere 2.1.7に変更することで解決しました(ログ出力によると、これはまだ最新バージョンです)。プッシュメッセージが正常に機能するようになりました...

于 2014-08-09T15:11:33.037 に答える