0

Spring 5.0.0 M1 から M2 にアップグレードした後、このコードは機能しなくなりました (クラスSseEventからServerSentEventクラスに変更しました)。

@RestController
public class StringsRestController {

    @GetMapping("/strings/sse/event")
    public Flux<ServerSentEvent<String>> sse() {
        return Flux.interval(Duration.ofMillis(100)).map(l -> {
            ServerSentEvent<String> event = ServerSentEvent.builder("foo").build();
            return event;
        }).take(2);
    }

例外は次のとおりです。

Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.springframework.http.codec.ServerSentEvent and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:275) ~[jackson-databind-2.8.3.jar:2.8.3]
    at com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1110) ~[jackson-databind-2.8.3.jar:2.8.3] 
4

1 に答える 1

1

https://jira.spring.io/browse/SPR-14748で対処

戻ることはシリアル化Flux<ServerSentEvent<String>>を意味しtext/event-streamます。

于 2016-09-28T15:36:26.303 に答える