【发布时间】:2016-03-22 21:06:08
【问题描述】:
我正在尝试添加 msgpack 二进制数据格式作为内容协商选项。 Json 和 Xml 开箱即用。我尝试将 jackson msgpack 映射器添加为 bean,就像在 this examle 中一样,但它不起作用。当我将Accept: application/x-msgpack 标头添加到我的请求时,406 Not Acceptable 代码被返回。
这是我的 WebConfig:
@Configuration
@EnableWebMvc
@SuppressWarnings("unused")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public HttpMessageConverter messagePackMessageConverter() {
return new AbstractJackson2HttpMessageConverter(
new ObjectMapper(new MessagePackFactory()),
new MediaType("application", "x-msgpack")) {
};
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false)
.ignoreAcceptHeader(false)
.favorParameter(true)
.defaultContentType(MediaType.APPLICATION_JSON)
.mediaType("xml", MediaType.APPLICATION_XML)
.mediaType("msgpack", new MediaType("application", "x-msgpack"));
}
}
我没有为我的 DTO 对象添加任何特殊的注释,我的控制器也没有什么特别之处。
我的 msgpack 依赖是:
org.msgpack:jackson-dataformat-msgpack:0.7.0-p3
【问题讨论】:
标签: java spring spring-boot jackson msgpack