java - How to correctly make Jetty WebSocketServlet work with HTTPS? -


i have jetty webservlet can connect various clients written in c# , on android. works using simple http, interested in upgrading https. try , creating server this:

public static void main(string[] args){      sslcontextfactory contextfactory = new sslcontextfactory();     contextfactory.setkeystorepath("keystore.jks");     contextfactory.setkeystorepassword("********");     sslconnectionfactory connectionfactory = new sslconnectionfactory(contextfactory, org.eclipse.jetty.http.httpversion.http_2_0.tostring());      server server = new server(8080);      serverconnector connector = new serverconnector(server, connectionfactory);     connector.setport(8443);     server.addconnector(connector);      servletcontexthandler servletch = new servletcontexthandler();     servletch.setcontextpath("/");     servletch.addservlet(schedulewebsocketservlet.class, "/schedule");      server.sethandler(servletch);      server.start();     server.join();   } 

this seems wrong. schedulewebsocketservlet class follows:

@webservlet(name = "schedule websocketservlet", urlpatterns = {"/schedule"}) public static class schedulewebsocketservlet extends websocketservlet{      private static final long serialversionuid = 5838283767965540728l;      public void doget(httpservletrequest request, httpservletresponse response){         try {             response.getwriter().println("<h1>hello world</h1>");         } catch (ioexception e) {             main.logerror(e);         }     }      @override     public void configure(websocketservletfactory arg0) {         arg0.register(schedulewebsocket.class);     }  } 

so question correct way use webservlet https?

thanks help

ok problem turned out had create serverconnections configurations http , https, give them details , assign them server. after need start them, should done after server started

    server server = new server();      httpconfiguration http_config = new httpconfiguration();     http_config.setsecurescheme("https");     http_config.setsecureport(8443);     http_config.setoutputbuffersize(32768);      httpconfiguration https_config = new httpconfiguration();     https_config.addcustomizer(new securerequestcustomizer());      serverconnector http = new serverconnector(server, new httpconnectionfactory(http_config));     http.setport(8080);     http.setidletimeout(30000);      sslcontextfactory contextfactory = new sslcontextfactory();     contextfactory.setkeystorepath("keystore.jks");     contextfactory.setkeystorepassword("changeit");     sslconnectionfactory connectionfactory = new sslconnectionfactory(contextfactory, org.eclipse.jetty.http.httpversion.http_1_1.tostring());      serverconnector https = new serverconnector(server, connectionfactory, new httpconnectionfactory(https_config));     https.setport(8443);     https.setidletimeout(50000);      server.setconnectors(new connector[]{http, https});      servletcontexthandler servletch = new servletcontexthandler();     servletch.setcontextpath("/");     servletch.addservlet(schedulewebsocketservlet.class, "/schedule");      server.sethandler(servletch);      server.start();     http.start();     https.start();     server.join(); 

Comments