在 Spring Boot Apache Camel REST API 中接收列表<MyDtoClass>时遇到问题

问题描述 投票:0回答:1

github链接:https://github.com/shahulsley/came-rest-dsl

我已经使用 Apache Camel REST DSL 在 Spring Boot 中编写了 REST API。除了 createBatch 之外,所有端点都工作正常,

  1. 通过Id获取
  2. 获取所有文档
  3. 删除
  4. 删除批次
  5. 创建
  6. createBatch --- 问题(无法接收列表形式的输入。出现类型转换问题。尝试了很多方法。 createBatch 端点是“http://localhost:8080/my-rest-api/createBatch”

输入正文: [{ "发货人编号": "AAA111", "handOffDate": "2024-08-05T11:40:15.123456", “开始日期”:“2024-09-01T02:36:15.678543” }, { "发货人编号": "BBB222", "开始日期": "2024-08-06T14:30:00.654321", “结束日期”:“2024-09-10T04:15:00.987654” } ]

期望:接收List并一一检索并调用创建单个端点。如果您有任何建议请告诉我

尝试将其转换为列表,但失败了

java spring-boot rest apache-camel
1个回答
0
投票

问题是接收 Json 作为列表。所以,我们需要告诉Camel,传入的数据是DTO的List, 贝娄解决了问题!

restConfiguration()
    .component("servlet")
    .bindingMode(RestBindingMode.off);  //Changed it to "off" from "json", manually unmarshal and marshal
    

JacksonDataFormat requestDataFormat = new JacksonDataFormat(SpecialLaunchDTO.class);
requestDataFormat.useList();

from("direct:createBatch")
    .unmarshal(requestDataFormat)
    .bean(specialLaunchService, "createShipperBatch(${body})")
    .marshal().json(JsonLibrary.Jackson);
© www.soinside.com 2019 - 2024. All rights reserved.