Unterstützt Jetty Server in gwt 2.8 Websocket jetzt? Wie ich weiß, hat es vorher nicht unterstützt. Wenn es eine positive Antwort gibt, wie kann man das machen? Den Anlegesteg 8 herauszunehmen und ihn durch Anlegesteg 9 zu ersetzen, ist keine gute Idee, denke ich.GWT 2.8 Websocket Unterstützung
Antwort
GWT 2.8 hat zu Jetty 9.2, gewechselt und unterstützt jetzt Servlets 3.1 Servlets Containerinitialisierer, von denen ich denke, dass sie zum Einrichten von WebSockets verwendet werden.
Ich habe es nicht versucht, aber ich nehme an, dass Sie jetzt WebSockets in DevMode haben können, vorausgesetzt, Sie fügen die erforderlichen Abhängigkeiten dem Klassenpfad hinzu.
Sie können auch einfach einen separaten Server anstelle des in DevMode integrierten Servers verwenden.
dann, wie es funktioniert?
Ich möchte ein wenig darüber nach der GWT 2.8.0 Release. Das einzige, was erforderlich für javax.websocket
verwendet, ist die Kenntnis der Jetty-Version mit GWT verpackt und den folgenden Satz von Maven Abhängigkeiten (siehe auch die Jetty WebSocket Beispiele auf GitHub):
<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>
doppelt Vergewissern Sie sich, dass der Umfang ist vorausgesetzt, - für die ersten beiden bedeutet dies, dass sie nicht in der endgültigen App verpackt sind - Sie werden diese nur erfordern, wenn Sie den SuperDev-Modus (SDM) ausführen. Wenn java.websocket-api
auf Ihrem Classpath war, funktioniert die Annotation-basierte Konfiguration wahrscheinlich nicht (zumindest in Embedded Tomcat und Jetty), da die Annotationen vom falschen Class Loader übernommen wurden (siehe auch verwandte Frage WebSocket 404 error für weitere Informationen zu diesem Thema)).
Vielen Dank für die Antwort, aber ich habe zwei Argumente zu diesem Problem gefunden: 1. Wenn Sie diesem Link folgen [https://gwt.googlesource.com/gwt/+/2.8.0-beta1/dev/build. xml] Sie werden sehen, dass die Stegversion NICHT 9.2, sondern 8.1.12; 2. Im Protokoll-Trace meines Projekts sehe ich jedes Mal, wenn ich es ausführe: "INFO: oejs.Server: jetty-8.y.z-SNAPSHOT". Woher haben Sie Informationen, die behaupten, dass die Stegversion 9,2 war? –
Ich fusionierte die Änderung früher in diesem Jahr und entfesselte Jetty von den Maven-Artefakten bald danach. Das war nach Beta1. –