2016-05-25 13 views
2

gwt 2.8のjettyサーバーは現在websocketをサポートしていますか?私が知っているように、以前はサポートされていなかった。肯定的な答えがある場合、それを動作させる方法は? jetty-8を取り除き、jetty-9に取り替えるのは良い考えではないと思います。GWT 2.8 websocket support

答えて

0

GWT 2.8はJetty 9.2に切り替えました。は、WebSocketのセットアップに使用されているServlets 3.1サーブレットコンテナ初期化子をサポートするようになりました。
私はそれを試していませんが、クラスパスに必要な依存関係を追加する必要がある場合、DevModeにWebSocketを持つことができると思います。

DevModeに組み込まれているサーバではなく、別のサーバを使用することもできます。

+0

ありがとうございます。私はこの問題に関する2つの議論を見つけました: 1.このリンク[https://gwt.googlesource.com/gwt/+/2.8.0-beta1/dev/build]に従ってください。 xml]では、jettyのバージョンは9.2ではなく8.1.12であることがわかります。 2.私のプロジェクトのログトレースでは、私はそれを参照して実行するたびに: "情報:oejs.Server:jetty - 8.y.z - スナップショット"。 桟橋のバージョンが9.2であると主張する情報はどこにありますか? –

+0

今年早く変更をマージし、すぐ後にMavenのアーティファクトからJettyをアンバンドルしました。これはベータ1の後でした。 –

0

どのように動作させるのですか?

GWT 2.8.0リリースの後でこれについて少し詳しく説明したいと思います。スコープがであることを二重に確認してください

<project> 
    <properties> 
    <sdm.jetty.version>9.2.14.v20151106</sdm.jetty.version> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>org.eclipse.jetty.websocket</groupId> 
     <artifactId>websocket-server</artifactId> 
     <version>${sdm.jetty.version}</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.jetty.websocket</groupId> 
     <artifactId>javax-websocket-server-impl</artifactId> 
     <version>${sdm.jetty.version}</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.websocket</groupId> 
     <artifactId>javax.websocket-api</artifactId> 
     <version>1.0</version> 
     <scope>provided</scope> 
    </dependency> 
    </depencies> 
</project> 

javax.websocketを使用するために必要な唯一のものは、GWTとMavenの依存関係の次のセットでパッケージ化桟橋バージョン(GitHubにも突堤のWebSocketの例を参照)の知識であります - 前者の2つは、最終的なアプリにパッケージ化されていないことを意味します.SuperDev-Mode(SDM)を実行している場合にのみ必要となります。 java.websocket-apiがあなたのクラスパス上にあったとすると、間違ったクラスローダーによって注釈が取り上げられたため、注釈ベースの設定は(少なくとも組み込みのTomcatとJettyでは)まったく機能しません(詳細はWebSocket 404 errorを参照してください) )。