У меня есть Jetty WebServlet, который может соединяться с различными клиентами, написанными на C# и на Android. В настоящее время это работает с использованием простого HTTP, но я заинтересован в его обновлении до HTTPS. Чтобы сделать это, я создаю такой сервер:Как правильно заставить Jetty WebSocketServlet работать с HTTPS?
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();
}
Это кажется неправильным. Класс ScheduleWebSocketServlet выглядит следующим образом:
@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);
}
}
Так что мой вопрос, что это правильный способ использовать WebServlet с HTTPS?
Большое спасибо за помощь
Это возможно, и задокументированы в [различных] (http://stackoverflow.com/a/29829926/ 775715) stackoverflow [ответы] (http://stackoverflow.com/a/29280145/775715). Какую ошибку вы видите? –
Я не вижу никаких ошибок. Я пытаюсь настроить HTTPS с помощью WebSocketServlet, но делаю это неправильно. Если бы кто-то мог предоставить простой пример HTTPS, совместимый с WebSocketServlets, это помогло бы мне и другим, у кого может быть такая же установка в будущем. – Stromata