我得到了下面的日志输出。我猜drop向导试图出错,但是它使用的Jersey JAX-RS实现不知道如何格式化错误?如何查看?
ERROR [2014-10-01 08:08:55,875] com.sun.jersey.spi.container.ContainerResponse: A message body writer for Java class io.dropwizard.jersey.errors.ErrorMessage, and Java type class io.dropwizard.jersey.errors.ErrorMessage, and MIME media type text/plain was not found.
The registered message body writers compatible with the MIME media type are:
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter
com.sun.jersey.server.impl.template.ViewableMessageBodyWriter
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider
text/plain ->
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ReaderProvider
FWIW我遇到的方法签名是:
@POST
@UnitOfWork
@Path("/update")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public String updateResults(ResultsUpdate results) {...}
发布于 2014-11-07 19:40:27
只需为您的资源指定这些头文件,这样dropwizard就能理解为响应使用哪个错误消息构建器:
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
发布于 2016-07-25 17:23:55
Dropwizard将在调试级别记录底层错误,因此您可以在日志配置中打开它,以便在此处查看原因:
io.dropwizard.jersey.jackson.JsonProcessingExceptionMapper: DEBUG
发布于 2014-10-02 01:32:48
这很愚蠢,但我点击了dropwizard从一个主类运行,这样你就可以在ErrorMessage中放置一个断点并在(例如)中运行它。月食。
顺便说一句,这种情况下的潜在错误是:
Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
https://stackoverflow.com/questions/26138516
复制相似问题