【发布时间】:2018-12-06 22:58:55
【问题描述】:
我有一个端点,该端点通常返回 PDF、Word 等类型的文档。此端点附带有用户输入,但是我想对其进行验证。
问题是,当我验证输入并想要返回某种错误 JSON 响应时,我最终会收到类似于
的错误
Failed executing GET /foo/generateBar: NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: FooResponse of media type: application/octet-stream
我在端点上使用的是@Produces({"application/octet-stream", "application/json"})
有没有办法通过返回 JSON 和不同的文件格式来避免这个错误?我的印象是我使用的@Produces 正在做什么,但是我可能完全糊涂了。
另外,我必须注意我在前端使用window.open 来调用这个端点。
【问题讨论】:
-
如果您想从返回 JSON 和其他类型响应的端点获取 JSON 响应,您可能需要尝试将
accept: application/json添加到请求的标头中。 -
@DanielVerem 以编程方式,在实践中我将如何做到这一点?此外,我必须注意
window.open()在前端被用来调用这个端点。
标签: java json rest jersey jax-rs