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
Post a Comment