События, отправленные сервером Jersey 2.25.1, вызывают ERR_INCOMPLETE_CHUNKED_ENCODING - PullRequest
0 голосов
/ 03 февраля 2020

Это мой ресурс JAX-RS

@Singleton
@Path("priceTaskEvents")
public class PlainPriceTaskEventResource implements PlainPriceTaskEventService.PriceTaskEventCallback {

    private SseBroadcaster broadcaster = new SseBroadcaster();

    @Inject
    private PlainPriceTaskEventService priceTaskEventService;

    @GET
    @Produces(SseFeature.SERVER_SENT_EVENTS)
    public EventOutput listenToPriceTaskEvents() {

        if (priceTaskEventService.getCallback() == null) {
            priceTaskEventService.setCallback(this);
        }

        final EventOutput eventOutput = new EventOutput() {
            @Override
            public void write(OutboundEvent chunk) throws IOException {
                super.write(chunk);
                System.out.println(chunk.getData());
            }
        };
        this.broadcaster.add(eventOutput);
        return eventOutput;
    }

    @Override
    public void onSupplierUpdated(PlainSupplier supplier) {
        System.out.println("Supplier updated : " + supplier.getId());
        broadcaster.broadcast(new OutboundEvent.Builder()
                .mediaType(MediaType.TEXT_PLAIN_TYPE)
                .name("supplier-updated")
                .data(String.valueOf(supplier.getId())).build());
    }
}

Код смоделирован по документации Джерси (https://eclipse-ee4j.github.io/jersey.github.io/documentation/2.25.1/sse.html#d0e11862)

Идея в том, что мой Javascript Пользовательский интерфейс зарегистрирует EventSource с URL /.../priceTaskEvents, а затем какая-то другая часть моей системы вызовет метод onSupplierUpdated, когда серверу будет что сообщить.

Проблема возникает, когда я пытаюсь чтобы проверить это из Chrome, либо используя браузер напрямую (введя URL-адрес в адресной строке), либо создав объект EventSource для чтения данных из события. Я получаю код ошибки net :: ERR_INCOMPLETE_CHUNKED_ENCODING 200. Кажется, я получаю только заголовки ответа, и возникает ошибка.

Это заголовки ответа, которые я получаю из запроса: The response headers I get

Кто-нибудь знает что-нибудь об этом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...