0
我有一个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);
}
}
所以我的问题是什么是使用具有HTTPS的WebServlet正确的方法是什么?
非常感谢您的帮助
这是可能的,并在[各种](http://stackoverflow.com/a/29829926/记录775715)stackoverflow [answers](http://stackoverflow.com/a/29280145/775715)。你看到什么错误? –
我没有看到任何错误。我正在尝试使用WebSocketServlet设置HTTPS,但做得不正确。如果有人能够提供与WebSocketServlets兼容的简单HTTPS示例,它可以帮助我和将来可能有类似设置的其他人。 – Stromata