Apache Camel Route在没有Sping Boot 的情况下上传表单数据的问题

omhiaaxx  于 12个月前  发布在  Apache
关注(0)|答案(1)|浏览(144)

我目前正在做一个没有Sping Boot 的Apache Camel项目,我在创建一个处理表单数据的路由时遇到了挑战。我遇到了一个JsonParseException问题,我正在努力解决。
问题:
我试图创建一个Camel路由,用于接收表单数据并将其上传到下游服务。但是,我遇到了以下错误:
2023-12- 11 T15:51:33,380错误[XNIO-1 task-6]:无法为(MessageId:AFFA 0 D 62 E217 B39 - 000000000000002 on ExchangeId:AFFA 0 D 62 E217 B39 - 00000000000002).尝试传递后已耗尽:1 caught:com.fasterxml.Jackson.core.JsonParseException:意外字符数字值中的(“-”(代码45)):有效数字值的负号后面应有数字(0-9)。
类别:

public class PageUpload extends RouteBuilder {

@Override
public void configure() throws Exception {
    String URL = "some link";

    restConfiguration()
            .component("servlet")
            .bindingMode(RestBindingMode.auto)
            .dataFormatProperty("prettyPrint", "true");

    rest("/pageUpload")
            .post()
            .description("IG API to upload file in ImageRight")
            .id("pageUpload")
            .consumes("multipart/form-data")
            .type(IRPageUploadRequestPayload.class)
            .produces(APPLICATION_JSON)
            .route()
            .to(PAGE_UPLOAD)
            .endRest();

    from(PAGE_UPLOAD)
            .routeId(this.getClass().getSimpleName())
            .unmarshall().mimeMultipart()
            .process(new TokenProcessor()) // token processor for bearer token gen
            .toD(URL + BRIDGE_ENDPOINT)
            .log("Azure Response Body: ${body}")
            .end();
}
}

字符串
Payload Class(IRPageServiceAdRequestPayload):

@Getter
@Setter
public class IRPageUploadRequestPayload {
@JsonProperty("DocumentType")
private String DocumentType;
@JsonProperty("FileNumber")
private String FileNumber;
@JsonProperty("PolicyEffectiveDate")
private String PolicyEffectiveDate;
@JsonProperty("Content")
private File Content;
@JsonProperty("Description")
private String Description;
@JsonProperty("UserId")
private String UserId;
@JsonProperty("Username")
private String Username;
}


问:
在这种情况下,是什么原因导致了JsonParseException错误?我如何确保Apache Camel路由正确处理表单数据,而不尝试将其解析为JSON?
其他信息:
我正在尝试从Swagger使用路由。我已经验证了Content-Type头被设置为multipart/form-data。我已经包含了用于生成不记名令牌的TokenProcessor。我感谢任何解决此问题的见解或建议。
谢谢你,谢谢

beq87vna

beq87vna1#

您可以关闭绑定模式
.bindingMode(RestBindingMode.auto)

.bindingMode(RestBindingMode.off)

相关问题