当前位置: 首页 > 知识库问答 >
问题:

spring-boot/Healthendpoint升级到1.3.0后不支持媒体类型xml

束新
2023-03-14
 @Configuration
 public class XStreamMarshallerConfiguration extends WebMvcConfigurerAdapter {

     @Autowired
     private Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder;

     @Override
     public void configureMessageConverters( final List<HttpMessageConverter<?>> converters ) {
         converters.add( createJsonConverter() ); // support JSON as default (because it is the first)
         converters.add( createXmlHttpMessageConverter() ); // support XStream XML
         super.configureMessageConverters( converters );
     }

     private MappingJackson2HttpMessageConverter createJsonConverter() {
         ObjectMapper jsonMapper = this.jackson2ObjectMapperBuilder.build();
         return new MappingJackson2HttpMessageConverter( jsonMapper );
     }

     private HttpMessageConverter<Object> createXmlHttpMessageConverter() {
         MarshallingHttpMessageConverter xmlConverter = new MarshallingHttpMessageConverter();

         XStreamMarshaller xstreamMarshaller = new XStreamMarshaller();
         configureXStream( xstreamMarshaller.getXStream() ); // my XStream setup

         xmlConverter.setMarshaller( xstreamMarshaller );
         xmlConverter.setUnmarshaller( xstreamMarshaller );

         return xmlConverter;
     }

 }

共有1个答案

仲孙兴平
2023-03-14

endpoint只被设计为生成JSON响应。Spring Boot 1.2.x中有一个bug,这意味着如果有合适的转换器可用并且Accept标头要求返回XML,它就可以返回XML,但存在XML格式错误的风险。

Spring Boot1.3通过限制endpoint只生成application/json,而不管可用的HTTP消息转换器是什么来解决这个问题。

如果您希望执行器正式支持XML响应,那么请打开一个增强请求。

 类似资料:
  • 我正在用Spring Boot构建一些API,但是当我试图用Postman查询时,我得到了一些关于Content-Type的错误。 我不明白哪里出了问题。 我注意到错误消失时,我删除了@刚体作为参数的方法。为什么啊? 我只想: 将XML发送到API

  • 我有两个API:s,端口8080上的CarRental API和端口8081上的CarRental CRUD。 CarRade-CRUD使用JpaRepository访问h2内存DB。 我想使用CarRental API,使用webclient向CarRental CRUD发出请求。 在CarRental CRUD中,我可以使用此服务发出post请求并将车辆添加到db中: 然后在控制器中: 我试图

  • 我试图在安全上下文中对spring rest web服务API执行ajax跨域post调用。在Jquery中,我无法设置contentType属性,因为安全上下文有问题。但是如果没有来自spring的contentType,我会收到以下响应:415(不支持的媒体类型) Spring控制器: jQuery: 有一种方法可以在Spring上禁用contentType检查?我的所有数据都是json,我希

  • 我有一个这样的用户类: 在LoadDatabase类中,我有: 这给了我这个: 现在,当我给这个命令时,它给我这个: 这很正确,虽然它给我的是电子邮件,而不是电子邮件。 但当我给予 上面写着: 这太可怕了。我正在学习本教程。 这是我的UserController课程: 更新后放置方法: 现在出现了两个问题。 为什么要用电子邮件代替电子邮件,如何用电子邮件代替电子邮件

  • 问题内容: 我正在尝试使用jQuery 1.6(Jackson 2.1.1 和Spring 3.2.0 )通过JSON通过该方法向数据库中插入和/或更新数据。 JS代码如下。 通过URL映射的Spring控制器内部的方法如下。 服务器按照问题的含义进行响应, 415不支持的媒体类型 标头信息如下所示。 整个文件如下。 当我删除一个方法参数并仅用于接受请求参数时,它可以工作。 问题答案: 浏览器发送

  • 问题内容: 我正在使用Spring 3.2,并尝试使用ajax发布请求来提交json对象数组。如果相关,我转义了所有特殊字符。 我的HTTP状态为415。 我的控制器是: jQuery是: 我发布的数组中的对象之一的示例是以下json: 错误是: 为什么会发生此错误-有人知道吗? 问题答案: 您可以尝试使用。它没有任何问题