2010-12-10 62 views
1

根據由於某些原因無法運行的文檔,我用Jetty編寫了一個簡單的https servlet。沒有錯誤消息,什麼都沒有......瀏覽器連接到servlet,但就是這樣 - 連接後它永遠掛起。這裏是代碼:帶Jetty的https servlet

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

是什麼MyServlet辦? – Joel 2010-12-10 11:37:54

+0

哪個版本的Jetty? – Tim 2010-12-21 01:14:13

回答

1

sslConnector.setKeystore(null);

對於SSL連接,您需要添加一個SSL證書,該證書可以使用JDK提供的工具生成。

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

+0

從Jetty文檔:keystore - 密鑰庫的資源路徑,或者用於內置密鑰庫的null。 – Demiurg 2010-12-11 08:25:17

+0

看起來它是Jetty文檔中的一個錯誤 - 畢竟它不能爲null,這個「內部密鑰庫」無論如何,無論是不工作還是不存在 – Demiurg 2010-12-25 10:22:31