Ho un'applicazione JAX-RS Jersey che gira su un'istanza di Grizzly:Combina Jersey con 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();
}
}
all'interno my.package.rest
ci sono JAX-RS risorse annotati. Vorrei aggiungere websocket annotate (@ServerEndpoint
, @OnOpen
, @OnMessage
, ecc.) Usando Tyrus sulla stessa istanza del server (diciamo in "http://127.0.0.1:8080/websocket") ma tutta la documentazione che sono riuscito a trovare mostra come avviare un server websocket standalone usando Tyrus + un contenitore Grizzly, non combinato con Jersey. Sto cercando qualcosa di simile:
server.getServerConfiguration().addHttpHandler(new SomeTyrusHttpHandler("/websocket"));
ma non riesco a trovare qualcosa di simile a SomeTyrusHttpHandler
. Come posso combinare Jersey e Tyrus in un singolo server Grizzly?
Basta usare Atmosphere, fa esattamente ciò che si desidera e consente di eseguire Jersey in cima a Grizzly, GlassFish ecc. Https://github.com/Atmosphere/atmosphere. Ad esempio http://goo.gl/s7OwGc è un esempio super facile di Jersey 2 che gira in modo trasparente in cima alle websocket. – jfarcand
vedere https://github.com/pavelbucek/placeholder - PoC, che combina Jersey e Tyrus (in cima a Grizzly + HK2). –
Ciao, c'è qualche notizia di tale integrazione? Vorrei aggiungere una risorsa WebSocket al mio progetto Jersey. –