提问者:小点点

不支持内容类型application/xml; charset=UTF-8


当我打电话给Rest服务时,我得到了以下例外。

org. springframe.web.HttpMediaTypeNotSupport dException:内容类型'application/xml;charset=UTF-8'在org.springframe.web.servlet.mvc.method.annotation.AbstractMessageConverterControlodArgumentResolver.readWellMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:152)[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]at org.springframe.web.servlet.mvc.method.annotation.Request estResponse seBodyMEodProcessor.readWellMessageConverters(RequestResponseBodyMethodProcessor.java:181)[spring-webmvc-4.1.1.RELEASE.jar:4.1.1.RELEASE]at

代码

    //    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));

}

共2个答案

匿名用户

您的控制器被实现为仅接受JSON值,即消费=MediaType.APPLICATION_JSON_VALUE;因此错误明确指出不支持XML。

如果需要XML类型,请更新控制器以包含MediaType。APPLICATION_XMLMediaType。APPLICATION_XML_Value

匿名用户

问题已经解决。下面给出的pom条目与jackson核心库冲突。刚刚删除它,一切正常。

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