J'ai un simple contrôleurdémarrage du ressort d'erreur désérialisation réactive
@RestController
@RequestMapping("path")
public class MyController {
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public Flux<SomeObject> run(@RequestBody Flux<RequestObject> request){
//do something and return flux
}
...
}
En appelant cette URL, je reçois l'exception
"Type definition error: [simple type, class reactor.core.publisher.Flux]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Can not construct instance of reactor.core.publisher.Flux (no Creators, like default construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information\n at [Source: (PushbackInputStream); line: 1, column: 1]
Je comprends cette erreur et généralement, je voudrais juste ajouter une annotation si nécessaire
@JsonDeserialize(as = SomeConcreteClass.class)
Mais dans ce cas, à quel exemple concret Flux devrais-je lier? En outre, est-ce que Spring boot
n'a pas de désérialiseurs automatiques par défaut pour les types de réacteurs (Mono, Flux)?
Mon pom (stuff pertinente):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
</dependency>