Maison  >  Article  >  Spring SseEmitter renvoie java.lang.IllegalArgumentException : aucune erreur de classe de convertisseur appropriée lors de l'envoi d'un objet DTO

Spring SseEmitter renvoie java.lang.IllegalArgumentException : aucune erreur de classe de convertisseur appropriée lors de l'envoi d'un objet DTO

王林
王林avant
2024-02-09 21:21:08516parcourir

L'éditeur php Baicao peut rencontrer java.lang.IllegalArgumentException : Aucune erreur de classe de convertisseur appropriée lors de l'utilisation de Spring SseEmitter pour envoyer des objets DTO. Cette erreur se produit généralement lorsque le convertisseur n'est pas configuré correctement, ce qui entraîne l'impossibilité de convertir l'objet DTO dans le format de données correct. La façon de résoudre ce problème consiste à vérifier si la classe de convertisseur est correctement configurée dans le fichier de configuration et à s'assurer que la classe de convertisseur peut convertir correctement l'objet DTO dans le format de données correspondant.

Contenu de la question

Dans notre application spring-boot, nous avons le simple ssestatusdto dto suivant :

@builder
@allargsconstructor
@noargsconstructor
public class ssestatusdto {

    private string currentphase;
    private int percentage;
    private string result;
}

Pour une raison que je ne comprends pas, Spring ne peut pas convertir ce dto en json lorsqu'il essaie de renvoyer les informations au client :

emitter.send(SseEmitter.event()
                    .data(SseStatusDto.builder()
                            .currentPhase("DONE")
                            .percentage(100)
                            .result("temp-result")
                            .build()), MediaType.APPLICATION_JSON);

J'ai reçu le convertisseur pour java.lang.illegalargumentexception:没有适合类 06fc722e8309f4fc3af5f9b05c0cd286

Qu'est-ce que j'ai raté ?

Solution

Essayez d'ajouter des getters et des setters au modèle ssestatusdto :

@Builder
@AllArgsConstructor
@NoArgsConstructo
@Getter
@Setter
public class SseStatusDto {

  private String currentPhase;
  private int percentage;
  private String result;
}

Cela devrait résoudre votre problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer