Home >Java >Spring SseEmitter throws java.lang.IllegalArgumentException: No suitable converter class error when sending DTO object

Spring SseEmitter throws java.lang.IllegalArgumentException: No suitable converter class error when sending DTO object

王林
王林forward
2024-02-09 21:21:08520browse

When php editor Baicao uses Spring SseEmitter to send DTO objects, you may encounter java.lang.IllegalArgumentException: No suitable converter class error. This error usually occurs when the converter is not configured correctly, resulting in the inability to convert the DTO object into the correct data format. The way to solve this problem is to check whether the converter class is correctly configured in the configuration file and ensure that the converter class can correctly convert the DTO object into the corresponding data format.

Question content

In our spring-boot application we have the following simple ssesstatusdto dto:

@builder
@allargsconstructor
@noargsconstructor
public class ssestatusdto {

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

For some reason I can't understand, spring cannot convert this dto to json when trying to send the information back to the client:

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

I get java.lang.illegalargumentexception: No suitable converter for class 06fc722e8309f4fc3af5f9b05c0cd286

What did I miss?

Solution

Try adding getters and setters for the sestatusdto model:

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

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

This should solve your problem.

The above is the detailed content of Spring SseEmitter throws java.lang.IllegalArgumentException: No suitable converter class error when sending DTO object. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete