3

「yo jhipster」から生成され、「mvn spring-boot:run」および「grunt server」で開始された新しくスキャフォールディングされたアプリを使用すると、アプリをロードして、ログイン、メトリックの表示、セッション、設定、ログの表示などの操作を実行できます。および監査。しかし、「User Tracker」ページを表示しても何も表示されないのですか?

このセクションは、Atmosphere websocket / AngularJS の統合を示すためのものだと思いますか? ブラウザのコンソール ログを見ると、次のように表示されます。

Websocket failed. Downgrading to Comet and resending atmosphere.js:2866
GET http://0.0.0.0:9000/websocket/activity?X-Atmosphere-tracking-id=0&X-Atmosph…true&X-Cache-Date=0application%2Fjson&X-atmo-protocol=true&_=1393276976964 404 (Not Found)   

Websocket 接続が試行されたように見えますが、最終的にタイムアウトになり、フォールバックの長いポーリングが機能しませんか? 私は最新の Chrome を使用しています (最新バージョンの Firefox と Safari も試しました)。

簡単なものがありませんか?

-- アップデート 1 --

これを WAR として Tomcat 7.0.50 にデプロイすると、ユーザー トラッカー ページに Atmosphere から返されたデータが表示されますが、WebSocket 接続を取得しようとして継続的にループし (HTTP ステータス コード 101: プロトコルの切り替え)、ユーザー データが定期的に表示されたり消えたりします。Chrome で次のようなエラーが表示されました。

No suspended connection available. Make sure atmosphere.subscribe has been called and request.onOpen invoked before invoking this method 

Tomcat ログには次のように表示されます。

[WARN] org.atmosphere.cpr.DefaultAnnotationProcessor - Unable to detect annotations. Application may fail to deploy.

-- 更新 2 --

それを WAR として Jetty 8.1.14.v20131031 にデプロイし (Jetty 9.1.1.v20140108 はエラーをスローします)、Chrome 32.0.1700.107 でテストすると、ロング ポーリングのフォールバック トランスポートで機能するようです。ただし、何らかの理由で Atmosphere がサーブレット コンテナーを Tomcat と見なすため、WebSockets への最初の接続は失敗します。サーバー ログでは、次の問題がスローされます。

java.lang.ClassCastException: org.eclipse.jetty.server.Request cannot be cast to org.apache.catalina.connector.RequestFacade
    at org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil.java:141)
    at org.atmosphere.container.Tomcat7Servlet30SupportWithWebSocket.service(Tomcat7Servlet30SupportWithWebSocket.java:62)

皆様のご協力に改めて感謝いたします - 間違いなく前進しています :)

-- アップデート 3 --

すべてを要約すると:

  1. 現在、「mvn spring-boot:run」と「grunt server」は、Websocket または long-polling では連携しません。
  2. JHipster WAR (mvn パッケージ) を Jetty 8.1.14.v20131031 にデプロイすると動作しますが、JHipster pom.xml から次の依存関係を削除する必要があります。そうしないと、Atmosphere は WebSocket サポートを提供しません。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    
  3. ああ。誤報 -- WebSocket ではなくストリーミングを使用して実行していたため、WebSocket にはまだ update2 からのエラーがあります。
4

1 に答える 1