Java org.springframework.web.HttpMediaTypeNotSupportedException:内容类型';应用程序/xml;字符集=UTF-8';不支持

Java org.springframework.web.HttpMediaTypeNotSupportedException:内容类型';应用程序/xml;字符集=UTF-8';不支持,java,spring,utf-8,Java,Spring,Utf 8,当我调用rest服务时,我遇到以下异常 org.springframework.web.HttpMediaTypeNotSupportedException:内容 输入'application/xml;字符集=UTF-8'不受支持 位于org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(Abstr

当我调用rest服务时,我遇到以下异常

org.springframework.web.HttpMediaTypeNotSupportedException:内容 输入'application/xml;字符集=UTF-8'不受支持 位于org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:152) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] 位于org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:181) [spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE] 在

代码

    //    This method calls the rest service


        @Override
        public TransactionSearchResults callSearchTransactions(TransactionSearchCriteria criteria, int page, int size) {

        HttpEntity<TransactionSearchCriteria> requestEntity = new HttpEntity<TransactionSearchCriteria>(criteria, getCommonHeaders(new HttpHeaders()));

        Map<String, Integer> params = new HashMap<String, Integer>();
        params.put("size", size);
        params.put("page", page);

        return restTemplate.exchange(urlBase + "/transaction?size={size}&page={page}", HttpMethod.POST, requestEntity, TransactionSearchResults.class, params).getBody();

        }

    // Api which caters to rest call

        @Controller
        @RequestMapping("/transaction")
        public class TransactionStatusController extends BaseController { ... }

    //Controller method for rest call 
        @ResponseBody
        @RequestMapping(produces = { MediaType.APPLICATION_JSON_VALUE }, method = RequestMethod.POST , consumes = MediaType.APPLICATION_JSON_VALUE)
            public com.rest.TransactionSearchResults searchTransactions(@RequestParam(value = "page", required = false) Integer page,
// Using request Param to retireve criteria                         
@RequestParam(value = "size", required = false) Integer size, @Valid     @RequestBody com.rest.TransactionSearchCriteria criteria) {
// This gets relevant results and return it to rest call
    return convert(transactionService.search(convert(criteria), page, size));

}
//此方法调用rest服务
@凌驾
public TransactionSearchResults callSearchTransactions(TransactionSearchCriteria条件,整数页,整数大小){
HttpEntity requestEntity=新的HttpEntity(标准,getCommonHeaders(新的HttpHeaders());
Map params=新的HashMap();
参数put(“尺寸”,尺寸);
参数put(“第页”,第页);
返回restemplate.exchange(urlBase+“/transaction?size={size}&page={page}”,HttpMethod.POST,requestEntity,TransactionSearchResults.class,params).getBody();
}
//迎合rest调用的Api
@控制器
@请求映射(“/transaction”)
公共类TransactionStatusController扩展BaseController{…}
//rest调用的控制器方法
@应答器
@RequestMapping(products={MediaType.APPLICATION\u JSON\u VALUE},method=RequestMethod.POST,consumes=MediaType.APPLICATION\u JSON\u VALUE)
public com.rest.TransactionSearchResults searchTransactions(@RequestParam(value=“page”,required=false)整数页,
//使用request Param终止条件
@RequestParam(value=“size”,required=false)整数大小,@Valid@RequestBody com.rest.TransactionSearchCriteria){
//这将获取相关结果并将其返回到rest调用
返回convert(transactionService.search(convert(条件)、页面、大小));
}

您的控制器实现为只接受JSON值,即
consumes=MediaType.APPLICATION_JSON_VALUE
;因此,这个错误清楚地表明XML不受支持


如果XML是预期类型,则更新控制器以包括
MediaType.APPLICATION\u XML
MediaType.APPLICATION\u XML\u Value

,问题已得到解决。下面给出的pom条目与jackson核心库冲突。刚把它取下来,一切都很好

<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.4.3</version>
</dependency>

com.fasterxml.jackson.dataformat
jackson数据格式xml
2.4.3

我尝试从控制器中删除consumes属性,但仍然显示相同的错误。此外,所有post rest调用在项目中都不起作用。httpMessageconverters似乎存在一些问题。请发布相关配置(即spring、maven等)