Mam aplikację Jersey JAX-RS, która biegnie na przykład Grizzly:Kombajny Jersey z Tyru
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();
}
}
wewnątrz my.package.rest
istnieją JAX-RS adnotacją zasobów. Chciałbym dodać adnotowane zasoby websocket (@ServerEndpoint
, @OnOpen
, @OnMessage
, itp.) Za pomocą Tyrusa na tej samej instancji serwera (na przykład w "http://127.0.0.1:8080/websocket"), ale cała dokumentacja, którą udało mi się znaleźć, pokazuje, jak uruchomić niezależny serwer websocket przy użyciu pojemnika Tyrus + a Grizzly, nie łączonego z Jersey. Szukam czegoś podobnego:
server.getServerConfiguration().addHttpHandler(new SomeTyrusHttpHandler("/websocket"));
ale nie mogę znaleźć coś podobnego do SomeTyrusHttpHandler
. Jak mogę połączyć Jersey i Tyrus na jednym serwerze Grizzly?
Po prostu użyj Atmosphere, robi dokładnie to, co chcesz i pozwala uruchomić Jersey na szczycie Grizzly, GlassFish itp. Https://github.com/Atmosphere/atmosphere. Na przykład http://goo.gl/s7OwGc jest bardzo łatwym przykładem Jersey 2, który działa transparentnie na stronach internetowych. – jfarcand
zobacz https://github.com/pavelbucek/placeholder - PoC, który łączy Jersey i Tyrus (na szczycie Grizzly + HK2). –
Witam, czy są jakieś wieści o takiej integracji? Chciałbym dodać zasoby WebSocket do mojego projektu w Jersey. –