【发布时间】:2020-04-23 11:43:56
【问题描述】:
我有一个简单的 Quarkus 应用程序,它有一个 POST 资源。
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response updateContent(@MultipartForm MyRequest request) {
bus.sendAndForget("request", request);
return Response.accepted().build();
}
MyRequest 看起来像这样:
public class MyRequest {
@FormParam("template")
@PartType(MediaType.APPLICATION_OCTET_STREAM)
private byte[] template;
@FormParam("data")
@PartType(MediaType.TEXT_PLAIN)
private Map<String, String> data;
// Default constructor & getters
}
然后我用 Postman 发送以下内容:
然后我得到以下错误:
java.lang.RuntimeException: RESTEASY007545: Unable to find a MessageBodyReader for media type: text/plain; charset=us-ascii and class type java.util.Map
如果我只发送模板,它可以工作,所以似乎由于某种原因无法解析 JSON 字符串。
我认为我拥有所有必需的依赖项,例如:
- quarkus-resteasy-杰克逊
- resteasy-multipart-provider
- resteasy-jackson2-provider
我还尝试手动注册 ResteasyJackson2Provider,并将数据属性的 mediaType 更改为 APPLICATION_JSON,但这没有帮助。我错过了什么,或者我什至正确地发送了 JSON?
【问题讨论】:
标签: java deserialization quarkus