Исключение нулевого указателя с OutboundSseEvent в службе событий, отправленных сервером - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь настроить отправленные сервером события на Java-сервере с помощью класса OutboundSseEvent. Я не уверен, почему мой код продолжает выдавать исключение нулевого указателя. Я использую эти учебники в качестве ссылки. https://www.baeldung.com/java-ee-jax-rs-sse и https://www.programcreek.com/java-api-examples/index.php?api=javax.ws.rs.sse.OutboundSseEvent

@Path("ssetest")
public class SSETestService extends SecureService {

    private Sse sse;

    @GET
    @Path("/test")
    @Produces("text/event-stream")
    public void SSETestService(@Context Sse sse, SseEventSink sseEventSink)
            throws InterruptedException, IllegalArgumentException {
        OutboundSseEvent stringEvent = sse.newEventBuilder()
                .name("ping")
                .data("hello world").build();
        sseEventSink.send(stringEvent);
    }

}

На стороне клиента ...

    testSSE() {
      console.log("in testSSE()");
      const evtSource = new EventSource(
        "http://localhost:8081/api/ssetest/test"
      );
      evtSource.onmessage = function(event) {
        console.log("received message");
        console.log("event.data: " + event.data);
      };
      evtSource.addEventListener("ping", function(event) {
        console.log("event.data: " + event.data);
        console.log("received ping event");
      });
      evtSource.onerror = function(err) {
        console.error("EventSource failed:", err);
      };
    }

Спасибо за любые указатели.

1 Ответ

0 голосов
/ 08 ноября 2019

Экземпляр sse равен нулю. Для лакмусоподобного теста вы можете напечатать sse, чтобы увидеть. Если вы используете Spring Framework, private Sse sse; должен быть автоматически подключен следующим образом

@Autowired
private Sse sse;

Я думаю, что параметр @Context Sse sse должен быть удален, как вы уже определили в классе.

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