Jasperreports 更新后,Spring Rest 控制器返回 XML 而不是 JSON
我有一个版本为 2.6.4 的 Spring boot 项目。 在我将 jasperreports 依赖项更新到 6.19.0 后,我所有的 RestControllers 现在都返回 XML 而不是 JSON 我可以在哪里更改此设置,而无需更改
@GetMapping(produces = {"application/json"})
每个方法?
I have a Spring boot project with version 2.6.4.
And after I updated the jasperreports dependency to 6.19.0 all my RestControllers returns now XML instead of JSON
Where can I change this, without changing to
@GetMapping(produces = {"application/json"})
on each method?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我今天遇到了同样的问题,我检查了 Chrome,发现它没有在 Accept 标头中添加 application/json 。
我的解决方案是创建一个包装过滤器:
I just have same issue today, I checked with Chrome and saw it doesn't add application/json in Accept header.
My solution is create a wrapper filter:
删除对 jackson-dataformat-xml 的依赖也可以解决该问题。无论如何,我认为这是一个 Jasper Reports 错误(在 6.20.0 中仍然存在),我不想为其添加自定义源代码:
Removing the dependency on jackson-dataformat-xml also fixes the issue. I think it is a Jasper Reports bug (still present in 6.20.0) anyway and I prefer not to add custom source code for it:
在configureContentNegotiation(ContentNegotiationConfigurer configurer)方法中设置默认类型。
Set the default type in the configureContentNegotiation(ContentNegotiationConfigurer configurer) method.
我可以通过删除(未使用的)
spring-boot-starter-data-rest
依赖项来解决该问题。I could resolve the issue by removing the (not used)
spring-boot-starter-data-rest
dependency.