Я создал базовую службу REST, которая работает, когда она вызывается через соединение HTTP. Но когда я пытаюсь добавить SSL поверх, у меня возникают некоторые проблемы.
Это код для создания сервера:
private HttpContext getHttpContext() {
HttpsServer server = null;
try {
server = HttpsServer.create(new InetSocketAddress("localhost", 443), 5);
server.setHttpsConfigurator(new HttpsConfigurator(SecureChatSslContextFactory.getServerContext()) {
public void configure(HttpsParameters params) {
SSLContext context = getSSLContext();
// get the default parameters
SSLParameters sslparams = context.getDefaultSSLParameters();
params.setSSLParameters(sslparams);
}
});
server.start();
return server.createContext("/customerservice/customer");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Endpoint e = Endpoint.create(HTTPBinding.HTTP_BINDING, new RestSourcePayloadProvider());
e.publish(getHttpContext());
Класс RestSourcePayloadProvide
r вызывает открытый метод, но он никогда не вызывается. Я предполагаю, что причина такого поведения заключается в том, что привязка для конечной точки HTTPBinding.HTTP_BINDING
, а не HTTPS. Но мне не удалось найти способ привязаться к https.
Если я запускаю тестовый клиент или браузер на текст ссылки Я получаю тот же ответ:
500 Внутренняя ошибка сервера
Нет обработчика для контекста