J'ai un service Web fonctionnant au dessus de Grizzly dans une application autonome.grizzly + jersey + websocket - n'accepte pas les connexions
Le serveur HTTP Grizzly est instancié comme suit:
this.httpServer = GrizzlyHttpServerFactory.createHttpServer(uri);
WebappContext applicationContext = new WebappContext("test", "/test");
ServletRegistration registration = applicationContext.addServlet("jersey", ServletContainer.class);
registration.addMapping("/*");
registration.setInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, MyApplicationService.class.getName());
applicationContext.deploy(httpServer);
WebSocketAddOn webSocketAddon = new WebSocketAddOn();
httpServer.getListeners().forEach(listener -> {
listener.registerAddOn(webSocketAddon);
});
WebSocketEngine.getEngine().register("/ws", "/notifications", myNotificationService);
Problème: mon service de notification n'accepte une connexion socket web.
Mais si je change:
// factory from org.glassfish.jersey.grizzly2.httpserver
this.httpServer = GrizzlyHttpServerFactory.createHttpServer(uri);
Par:
// factory from org.glassfish.grizzly.http.server
this.httpServer = HttpServer.createSimpleServer(null, 8084);
Ensuite, mon service n'accepte les connexions socket web.
Je ne comprends pas pourquoi. Quelle est la différence entre les deux?
Pour ma connaissance générale, quelle implémentation websocket utilisez-vous? Quand j'ai vu le grizzli, je pensais que vous utilisiez le serveur d'application semblable à GlassFish mais cela ne semble pas le cas. Pendant ce temps, j'essaie de comprendre la relation entre les services web et websocket dans votre exemple. Merci! – Al1
J'utilise Grizzly comme serveur HTTP pour mes micro-services fonctionnant dans une application Java SE autonome. Grizzly fournit une implémentation Web Socket (pas une implémentation JSR 356). Les services Web sont utilisés pour la communication client à serveur (requêtes et commandes) tandis que les Web Sockets sont utilisés pour la notification des événements de domaine. –
Un grand merci pour vos commentaires. Je peux revenir dans quelques mois, si cela ne vous dérange pas, car nous avons une application Java SE + développement websocket prévu pour l'année prochaine. – Al1