可以获得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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章