首頁 > Java > 主體

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

王林
發布: 2024-02-09 21:21:08
轉載
507 人瀏覽過

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:沒有適合類別 <class> 的轉換器

我錯過了什麼?

解決方法

嘗試為 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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板