服务器发送的事件服务中OutboundSseEvent的空指针异常

我正在尝试使用OutboundSseEvent类在Java服务器中设置服务器发送的事件。我不确定为什么我的代码会不断抛出空指针异常。我正在使用这些教程作为参考。 https://www.baeldung.com/java-ee-jax-rs-ssehttps://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);
      };
    }

感谢任何指针。

zjc121 回答:服务器发送的事件服务中OutboundSseEvent的空指针异常

实例sse为空。对于像测试一样的石蕊,您可以打印sse进行查看。如果您使用的是Spring框架private Sse sse;,请按以下步骤自动接线

@Autowired
private Sse sse;

我认为应该像在类中定义的那样删除参数@Context Sse sse

本文链接:https://www.f2er.com/3139749.html

大家都在问