Тип носителя не является приемлемым исключением при использовании SseEmitter - PullRequest
0 голосов
/ 17 июня 2019

После этого урока я пытаюсь настроить Sse Emitter. Когда я открываю HTML-страницу, я получаю

Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]

На стороне клиента (javascript) он говорит, что не может подключиться к серверу. Я пробовал другие учебные пособия, но не знаю, почему мой код не работает.

Я настроил чистый тестовый проект, содержащий только и точно учебный код.

1 Ответ

0 голосов
/ 21 июня 2019

Я занимался чем-то другим, когда у меня возникла такая же проблема. Код ниже исправил это.

Проще говоря, Несоответствие Тип носителя.

@GetMapping(value = "/api/push/notification",headers = "Accept=*/*", consumes = MediaType.ALL_VALUE, produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public String doNotify(@RequestParam("authToken") String token, @RequestParam("clientId") String clientId, HttpServletResponse response) throws InterruptedException, IOException {
    response.addHeader("charset","UTF-8");
    final SseEmitter emitter = new SseEmitter(30000l);
        service.addEmitter(clientId,emitter);
        service.sendConnectedNotification(clientId);
        emitter.onCompletion(() -> service.removeEmitter(clientId));
        emitter.onTimeout(() -> service.removeEmitter(clientId));
    return "Connected OK";
}

любой мой обработчик событий

 @Async
public void doNotify(String clientId, Object data) {
    SseEmitter emitter= emitters.get(clientId);
    if(emitter!=null) {
        try {
            emitter .send(SseEmitter.event() .reconnectTime(30000)
                .data(data,MediaType.APPLICATION_JSON)
                .id(UUID.randomUUID().toString())
                .name("Notification")
                .comment("Client connection notification")
            );
        } catch (Exception e) {
            emitters.remove(clientId);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...