首页 > 解决方案 > 从rabbitMQ接收消息时出错

问题描述

我收到一个错误org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener threw exceptionorg.springframework.dao.InvalidDataAccessApiUsageException: Incompartible types found. Expected class java.lang.String for descriptionAbstract with name *_description_abstract, but found class java.util.ArrayList; nested exception is java.lang.IllegalArgumentException: Incompartible types found. Expected class java.lang.String for descriptionAbstract with name *_description_abstract, but found class java.util.ArrayList 但我有 descriptionAbstract as String

package com.myproject.platform.model;
import java.util.List;
import com.myproject.constant.DocumentStatus;
import com.google.gson.annotations.SerializedName;
public class DocumentDto {
    @SerializedName("document_id")
    private String documentId;
    @SerializedName("description_abstract")
    private String descriptionAbstract;
    public DocumentDto() {
    }
    public String getDocumentId() {
        return documentId;
    }
    public String getDescriptionAbstract() {
        return descriptionAbstract;
    }
    public static class Builder {
        private String documentId;
        private String descriptionAbstract;
        public Builder documentId(String documentId) {
            this.documentId = documentId;
            return this;
        }
        public Builder descriptionAbstract(String descriptionAbstract) {
            this.descriptionAbstract = descriptionAbstract;
            return this;
        }
        public DocumentDto build() {
            return new DocumentDto(this);
        }
    }
    private DocumentDto(Builder builder) {
        this.documentId = builder.documentId;
        this.descriptionAbstract = builder.descriptionAbstract;
    }
}

如果有人可以指出问题所在或需要其他文件查看,请告诉我

标签: javaspringspring-bootrabbitmq

解决方案


Expected class java.lang.String for descriptionAbstract with name *_description_abstract, but found class java.util.ArrayList您的 java 代码期望消息中的此字段为 String 类型,但您收到的消息将此字段作为列表。Java 无法从列表中创建字符串,这就是它导致异常的原因。查看此消息的格式是否正确(可能生成错误)或将您的字段从 String 更改为 ArrayList。


推荐阅读