首頁  >  文章  >  Spring SseEmitter 發送 DTO 物件時拋出 java.lang.IllegalArgumentException: No合適的轉換器類別錯誤

Spring SseEmitter 發送 DTO 物件時拋出 java.lang.IllegalArgumentException: No合適的轉換器類別錯誤

王林
王林轉載
2024-02-09 21:21:08515瀏覽

php小編百草在使用Spring SseEmitter發送DTO物件時,可能會遇到java.lang.IllegalArgumentException: No合適的轉換器類別錯誤。這個錯誤通常發生在沒有正確配置轉換器的情況下,導致無法將DTO物件轉換為正確的資料格式。解決這個問題的方法是檢查設定檔中是否正確配置了轉換器類,並確保轉換器類別能夠正確地將DTO物件轉換為對應的資料格式。

問題內容

在我們的 spring-boot 應用程式中,我們有以下簡單的 ssestatusdto dto:

@builder
@allargsconstructor
@noargsconstructor
public class ssestatusdto {

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

出於某種我無法理解的原因,spring 在嘗試將訊息發送回客戶端時無法將此 dto 轉換為 json:

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

我收到 java.lang.illegalargumentexception:沒有適合類別 06fc722e8309f4fc3af5f9b05c0cd286 的轉換器

我錯過了什麼?

解決方法

嘗試為 ssestatusdto 模型新增 getter 和 setter:

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

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

這應該可以解決您的問題。

以上是Spring SseEmitter 發送 DTO 物件時拋出 java.lang.IllegalArgumentException: No合適的轉換器類別錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除