可以获得XML,但JSON丢掉500 [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以获得XML,但JSON丢掉500 [重复]相关的知识,希望对你有一定的参考价值。

春季5和泽西2

错误:

SEVERE [http-apr-9090-exec-2] org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<com.org.schema.common.SomeObject>

没有任何堆栈跟踪可用。

请注意,如果我使用相同的服务使用不同的调用并按ID检索单个SomeObject,我仍然会获得500但我根本看不到任何异常或错误。

我想也许这可能是缺少依赖性。由于版本冲突,POM有几个排除,但我已经发现一些缺失。

答案

在这里,我有一个类似的例外。

上下文:

  • 我正在使用纯汗布
  • 我的异常发生在HTTP响应上
  • 我的解决方案 - 使用不同的方法来编写正文

例外:

22-Feb-2018 05:49:55.809 SEVERE [http-nio-8080-exec-22] com.sun.jersey.spi.container.ContainerResponse.write A message body writer for Java class java.io.ByteArrayOutputStream, and Java type class java.io.ByteArrayOutputStream, and MIME media type application/json was not found.

导致它的代码:

    @Override
public void writeTo(User user, Class<?> type, Type genericType, Annotation[] annotations,
                    MediaType mediaType, MultivaluedMap<String, Object> httpHeaders,
                    OutputStream out) throws IOException, WebApplicationException {
    ...
    ...
    Writer writer = new PrintWriter(out);
    writer.write("...");
    ...
    writer.flush();
    writer.close();
}


return Response.ok(streamingOutput, MediaType.valueOf("application/pdf")).header("Content-Disposition", "inline; filename=price.pdf").build();

我的解决方案

    final ByteArrayOutputStream pdfStream = ...                

StreamingOutput streamingOutput = new StreamingOutput() {
    @Override
    public void write(OutputStream outputStream) throws IOException, WebApplicationException {
        pdfStream.writeTo(outputStream);
        pdfStream.flush();
        pdfStream.close();
    }
};

return Response.ok(streamingOutput, MediaType.valueOf("application/pdf")).build();

我决定回应,因为错误几乎是一样的,所以 - 我希望这可以让你知道你的解决方案可以去哪里,或者帮助你丢弃一些案例。

以上是关于可以获得XML,但JSON丢掉500 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

求int范围所有的水仙花数以及获得丢掉各位,最高位的方法

由于 json 的循环结构,我不断获得状态 500

对RDD进行Spark重复数据删除以获得更大的RDD

在查询中获得 500 [重复]

PHP将带有一些(重复)元素的XML转换为Json到Json数组[重复]

FlashDevelop 接收 XML,Flash Pro 接收 JSON