为什么未调用“通用” MessageBodyReader / Writer实现?

我写了这个MessageBodyReader来与任何类型的对象匹配,但是没有被调用。 json-b的默认实现尝试将字符串解析为对象,但是在尝试解析日期时却给出了错误,该日期是我用杰克逊注释映射的,这表明未调用我的MessageBodyReader。

@Provider
@Consumes(MediaType.APPLICATION_JSON)
public class JacksonmessageBodyReader implements MessageBodyReader {

    @Override
    public boolean isReadable(Class type,Type genericType,Annotation[] annotations,MediaType mediaType) {
        return true;
    }

    @Override
    public Object readFrom(Class type,MediaType mediaType,MultivaluedMap httpHeaders,InputStream entityStream) throws IOException,WebApplicationException {
        return new ObjectMapper().readValue(entityStream,type);
    }

}

这里是一个简单的资源。

@Path("/visits")
public class VisitResource {

    @Inject
    Repository<Visit> repository;

    ....

    @POST
    public Response post(Visit visit) {
        repository.create(visit);
        return Response.status(Response.Status.CREATED).build();
    }
}

vacant_7 回答:为什么未调用“通用” MessageBodyReader / Writer实现?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3033800.html

大家都在问