我目前正在做一个没有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。我感谢任何解决此问题的见解或建议。
谢谢你,谢谢
1条答案
按热度按时间beq87vna1#
您可以关闭绑定模式
.bindingMode(RestBindingMode.auto)
到
.bindingMode(RestBindingMode.off)