2012-07-31 2 views
0

XML (요청 본문)에서 구문 분석 된 개체를 가져 오려고합니다. DescBatch 정적 내부 클래스xml 루트 요소의 정적 내부 클래스 요청 본문

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
    "descBatch" 
}) 
@XmlRootElement(name = "diffIdsRequest") 
public class DiffIdsRequest { 

    @XmlElement(name = "desc-batch", required = true) 
    protected DiffIdsRequest.DescBatch descBatch; 

    @XmlAccessorType(XmlAccessType.FIELD) 
    @XmlType(name = "", propOrder = { 
     "descItem" 
    }) 
    public static class DescBatch { 

I 라인

2012-07-31 17:34:11,604 [] [pool-2-thread-1] INFO o.s.oxm.jaxb.Jaxb2Marshaller - Creating JAXBContext with clas ses to be bound [class eu.eudml.restModel.DiffIdsRequest$DescBatch] 

을 볼 수 있습니다 로그에서 서블릿 구성

<oxm:jaxb2-marshaller id="marshaller"> 
    <oxm:class-to-be-bound name="eu.eudml.restModel.DiffIdsRequest$DescBatch" /> 
</oxm:jaxb2-marshaller> 

의 조각이 어디 내 컨트롤러 메소드의 헤더는

public ModelAndView differentTypeOfIds(@RequestBody DiffIdsRequest.DescBatch body){ 

입니다 그것은 o 것으로 보인다. k,하지만 어떤 데이터 (네임 스페이스가없는 xml)를 보낼 때 differentTypeIds 메서드가 호출되지 않습니다. ModelAndView가 null (로그)입니다.

내부 수업이나 다른 문제가 있습니까?

답변

0

@XmlRootElement 또는 @XmlType이 (가) DescBatch에 누락 된 것 같습니다. 또한 Accept 헤더 application/xml이 요청의 일부로 전송되는지 확인해야합니다.

+0

xmlRootElement 클래스에 중첩 된 정적 클래스를 언 마샬 할 수 없습니까? – pawb4r

+0

네,하지만 중첩 된 정적 클래스는 완전히 독립적 인 클래스처럼 동작합니다. 단지 다른 클래스 본문 안에 중첩되어 있으므로'@ RequestBody'가 적용될 수 있도록'@XmlRootElement' 주석이 있어야합니다 . –

관련 문제