2014-06-09 7 views
0

@ResponseBody 주석을위한 맵을 사용하려고하고 있으며 xml 응답은 스프링의 XML 메시지 변환기를 사용하여 생성되지 않습니다. 응답을 생성하는 동안 HttpMediaTypeNotAcceptableException을 던집니다. 나는 Spring 3.2를 사용하고있다.@ResponseBody로 맵 사용하기

반면 json 응답은 예외없이 생성됩니다. json 응답을 위해 MappingJackson2HttpMessageConverter를 사용했습니다.

@ResponseBody 
@RequestMapping(method = RequestMethod.GET, value = "/reqPath/{params}", 
          produces={"application/xml","application/json"}) 
public Map<String, SomeObject> getDataAsXmlOrJson() { 
...... 
} 
+0

들어오는 HTTP 요청에는 어떤 종류의 HTTP 헤더가 있습니까? – geoand

+0

없음, 디폴트 Accept 헤더'application/xml'은 Spring에 의해 취해진 다. –

답변

0

XML 용 http 메시지 변환기를 등록해야합니다. jaxb를 사용할 수도 있고,보다 많은 제어 환경을 위해 커스텀 컨버터를 생성 할 수도 있습니다.

+0

자세히 설명해 주시겠습니까? jaxb'XmlRootElement' 주석을 이미 사용하고 있습니다 만'Map '가 아닌'Object'에서만 작동합니다 –