我正在尝试使用JavaScript Web客户端和Spring Boot 1.5.7应用程序来处理服务器发送的事件。当客户端最初连接时从REST端点返回SseEmitter时,我在服务器日志中收到以下错误:
o.g.j.m.i.WriterInterceptorExecutor :
MessageBodyWriter not found for media type=text/event-stream,
type=class org.springframework.web.servlet.mvc.method.annotation.SseEmitter,
genericType=class org.springframework.web.servlet.mvc.method.annotation.SseEmitter
REST方法调用正常,我创建并保存发射器以供日后使用。当从REST方法返回发射器时,会抛出上述异常。
我只在网络客户端(Chrome和Firefox)中使用EventSource时才会这样做,而不是在使用curl时。我甚至可以在浏览器中输入URL并获得响应,而不会在服务器上出现错误。
我几乎都在关注我能找到的每一个例子。
JavaScript的:
const es = new EventSource('https://localhost:8443/sse');
es.onmessage = e => {console.log(e.data);};
es.onerror = e => {console.log('onerror:' + e);};
es.onopen = e => {console.log('onopen');};
服务器:
@GET
@Path("/sse")
@Produces({"text/event-stream"})
public SseEmitter sse() {
SseEmitter emitter = new SseEmitter();
... save for later ...
return emitter;
}
有什么想法吗?
谢谢。