【问题标题】:Getting Error while receiving message from rabbitMQ从rabbitMQ接收消息时出错
【发布时间】:2021-05-30 10:28:10
【问题描述】:

我收到由org.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 引起的错误org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Listener threw exception 但我有 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;
    }
}

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

【问题讨论】:

    标签: java spring spring-boot rabbitmq


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。我不知道从哪里可以看到收到此消息的字段。提到descriptionAbstract 的所有其他地方都是字符串类型。关于您的其他建议,我无法将类型从 String 更改为 ArrayList,因为有很多字段是 String 或 integer 类型。
    • 如果您确定它应该是一个字符串,那么我强烈建议您查看此 stackoverflow.com/questions/10709533/… 例如并尝试查看此消息在队列中的外观,因为创建的应用程序之间存在不匹配此消息和您的应用程序
    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2011-05-04
    相关资源
    最近更新 更多