Я пытаюсь создать сервер веб-сокетов, используя программные конечные точки с tyrus 1.8.2. Я обнаружил, что конструктор:
public Server(String hostName,
int port,
String contextPath,
Map<String,Object> properties,
Class<?>... configuration)
не принимает класс, реализующий ServerEndpointConfig. Когда я пытаюсь это сделать, он выдает исключение DeploymentException «Класс XXX не является потомком ServerApplicationConfig и не имеет аннотации @ServerEndpoint».
Поскольку я использую программные конечные точки (без аннотаций), это, по-видимому, означает, что я должен реализовать ServerApplicationConfig. Это противоречит документации API веб-сокетов.
Поэтому, когда я реализую ServerApplicationConfig, я больше не получаю это исключение, и кажется, что сервер запускается без проблем, но он возвращает 404, что я считаю допустимыми попытками подключения (правильный хост, порт и контекстный путь).
Что мне не хватает?
Дополнительная информация: я расширил TyrusServerEndpointConfigurator и предоставил переопределение для метода ModifyHandshake(). Сервер возвращает 404 без вызова этого метода.