小编cyr*_*mas的帖子

部署为WAR时,与param的Springboot内容协商无法解决

我试图@RestController在json和xml之间格式化我的响应内容类型.它似乎适用于Accept标头或路径扩展(.json,.xml)的情况.我的应用程序打包为WAR并部署到tomcat实例.但是我目前面临着两个问题.

1)即使我ContentNegotiationConfigurer根据curl -X GET -H "Cache-Control: no-cache" http://localhost:8080/v1/api/version解析为XML 的请求将我的默认内容类型设置为JSON

2)当我在请求中使用param时,内容解析不正确.在访问时curl -X GET -H "Cache-Control: no-cache" http://localhost:8080/v1/api/version?format=json我得到了XML.

SpringBoot应用程序

@EnableAutoConfiguration
@ComponentScan
@Configuration
@EnableWebMvc
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder     builder) {
        builder.sources(Application.class);
        return super.configure(builder);
    }
}
Run Code Online (Sandbox Code Playgroud)

WebMvcConfigurerAdapter

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {    

    private RequestMappingHandlerAdapter requestMappingHandlerAdapter;    

    private CustomObjectMapper objectMapper;    

    @PostConstruct
    public void init() { …
Run Code Online (Sandbox Code Playgroud)

rest spring-mvc content-negotiation spring-boot

6
推荐指数
0
解决办法
1194
查看次数