2010-12-10 64 views
1

J'ai écrit une simple servlet https avec Jetty selon la documentation qui, pour une raison quelconque, ne fonctionne pas. Pas de messages d'erreur, rien ... le navigateur se connecte au servlet, mais c'est tout - après la connexion, il se bloque pour toujours. Voici le code:Servlet https avec Jetty

SslSocketConnector sslConnector = new SslSocketConnector(); 
    sslConnector.setPort(5555); 
    sslConnector.setKeystore(null); 
    sslConnector.setHost("localhost"); 
    ((AbstractConnector) connector).setThreadPool(new QueuedThreadPool(20)); 
    server.addConnector (sslConnector); 


ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); 
    context.setContextPath("/"); 

    HandlerList handlers = new HandlerList(); 

    handlers.setHandlers(new Handler[] {context, new DefaultHandler() }); 
    server.setHandler(handlers); 

    MyServlet servlet = new MyServlet(); 
    context.addServlet(new ServletHolder(servlet), "/*"); 

    server.start(); 
    server.join();  
+0

Qu'est-ce que myServlet faire? – Joel

+0

Quelle version de Jetty? – Tim

Répondre

1

sslConnector.setKeystore (null);

Pour une connexion SSL, vous devez ajouter un certificat SSL, qui peut être généré à l'aide des outils fournis dans JDK.

Voir

http://download.oracle.com/javaee/1.4/tutorial/doc/Security6.html

+0

À partir de la documentation de Jetty: keystore - Le chemin de la ressource vers le magasin de clés, ou null pour les fichiers de clés intégrés. – Demiurg

+0

On dirait que c'est un bug dans la documentation de Jetty - il ne peut pas être nul après tout, ce "keystore interne", peu importe ce que cela signifie, ne fonctionne pas ou n'existe pas – Demiurg