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.
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 <class>
What did I miss?
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!