Ich habe ein Jersey JAX-RS-Anwendung, die auf einem Grizzly-Instanz ausgeführt wird:Kombinieren Jersey mit Tyrus
public class Application {
public static final String BASE_URI = "http://127.0.0.1:8080/rest";
public static void main(String[] args) throws IOException {
ResourceConfig rc = new ResourceConfig().packages("my.package.rest");
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
System.out.println("Server started, press any key to stop.");
System.in.read();
server.shutdownNow();
}
}
innen my.package.rest
gibt es JAX-RS Ressourcen kommentiert. Ich möchte Websocket mit Anmerkungen versehen (@ServerEndpoint
, @OnOpen
, etc.) Ressourcen mit Tyrus auf der gleichen Server-Instanz (sagen wir in "http://127.0.0.1:8080/websocket") aber die gesamte Dokumentation, die ich finden konnte, zeigt, wie man einen Standalone-Websocket-Server startet Verwendung von Tyrus + einem Grizzly-Container, nicht kombiniert mit Jersey. Ich bin auf der Suche nach so etwas wie:
server.getServerConfiguration().addHttpHandler(new SomeTyrusHttpHandler("/websocket"));
aber ich kann nichts ähnlich wie SomeTyrusHttpHandler
finden. Wie kann ich Jersey und Tyrus in einem einzigen Grizzly-Server kombinieren?
Verwenden Sie einfach Atmosphäre, es tut genau das, was Sie wollen und erlauben Jersey auf Grizzly, GlassFish etc. https://github.com/Atmosphere/atmosphere laufen zu lassen. Zum Beispiel http://goo.gl/s7OwGc ist ein super einfaches Beispiel für Jersey 2, das transparent auf Websockets läuft. – jfarcand
siehe https://github.com/pavelbucek/placeholder - PoC, das Jersey und Tyrus kombiniert (zusätzlich zu Grizzly + HK2). –
Hallo, gibt es Neuigkeiten über eine solche Integration? Ich möchte meinem Jersey-Projekt eine WebSocket-Ressource hinzufügen. –