2016-09-21 4 views
0

J'ai vu de nombreux exemples sur la façon de configurer Jetty pour HTTPS SSL for Jetty mais ils semblent tous utiliser une classe Server séparée contenant une méthode main pour l'exécution. Je veux exécuter mon WebServlet en tant que servlet standard configuré via le fichier web.xml. J'ai actuellement:Jetty WebSockets sur HTTPS configuré via WebSocketServlet

@WebServlet 
public class MonitoringServlet extends WebSocketServlet { 

    @Override 
    public void configure(WebSocketServletFactory factory) { 
     factory.register(MonitoringSocket.class); 
    } 
} 

Où pourrais-je placer mon code de configuration de servlet SSL? Dans la méthode configure de ce servlet? Dans la méthode init?

Je comprends que dans ce cas, il n'y a pas besoin d'instancier un objet Server et en utilisant .start() et .join

Répondre

1

Servlets sont juste un moyen de produire une réponse à une demande.

Typiquement, une demande peut être de HTTP/0.9, HTTP/1.0, HTTP/1.1 ou HTTP/2. Utilisation de SSL/TLS pour la partie sécurisée du protocole

Techniquement parlant, HTTP est même pas nécessaire pour Servlets de fonctionner.

Le protocole utilisé pour soumettre la demande est hors du contrôle de la servlet que vous implémentez pour fournir une réponse.

Dans la jetée, vous voulez:

  • une instance de serveur
  • au moins 1 connecteur configuré pour SSL/TLS
  • au moins 1 gestionnaire attribué au serveur
    • aide servlets sans tous les bagages d'une "application web" (une "application web" a généralement un WEB-INF/web.xml, WEB-INF/classes, et WEB-INF/lib/*.jar) ce serait un ServletContextHandler
    • Utilisation de servlets avec une « application web » ce serait un WebAppContext

Cette configuration peut provenir d'une configuration ${jetty.base} dans le jetty-distribution ou via utilisation de Java construire le serveur, ses connecteurs et ses gestionnaires.

+0

Ok, j'ai déjà vu ce modèle auparavant. Je veux utiliser 'WebAppContext' mais je ne pensais pas avoir besoin d'une instance de serveur. Je pensais que c'était géré pour moi. Ce lien [Eclipse Websocket API] (http://www.eclipse.org/external/jetty/stable-9/apidocs/org/eclipse/jetty/websocket/servlet/package-summary.html) détaille un processus de création quelque peu différent . – jiveturkey