2012-08-09 2 views
1

현재 CXF 프레임 워크를 사용하여 웹 서비스를 개발 중입니다. 이 webservices는 내 DAO 레이어를 호출하여 DB 작업을 수행합니다. 기본적으로 CXF는 데이터 바인딩을 위해 JAXB를 사용하고 있습니다. 예를 들어, 새로운 사람을 만들고 싶다면 다음과 같이 webservice를 준비하고 있습니다.xml 페이로드를 다른 POJO 객체에 매핑하십시오.

public Response createPerson(CreatePersonRequest request) 
{ 

// Call to hibernate DAO class 
personDao.create() 
} 

여기 CreatePersonRequest 내가 내 DAO 클래스에 전화를하기 전에 내 DTO 클래스 (JAXB가 주석), 내가 엔티티 객체를 최대 절전 모드로 내 DTO 클래스 개체를 변환하고자하는 것입니다. 내 webservice에서받은 XML을 기반으로 내 최대 절전 모드 엔터티 개체를 채우고 싶습니다. 그러나 여기에받은 XML은 Person Person 객체가 아닌 CreatePersonRequest에 맞을 것입니다. 왜냐하면 내 XML 루트 태그가이 클래스가 아니기 때문에 두 클래스 모두 내 속성이 동일합니다. 간단히 말해서 같은 XML 페이로드에 대해 두 가지 다른 유형의 POJO 객체를 채우고 싶습니다. JAXB를 사용하여이 작업을 수행 할 수 있습니까? 도와주세요.

+0

나는 귀하의 질문을 이해한다면 그것은 단지 작동해야합니다. 무슨 문제가 보이니? 추가 세부 사항을 제공 할 수 있습니까? –

+0

답장을 보내 주셔서 감사합니다. PersonRequest와 Person과 같은 두 개의 클래스가 있습니다. 따라서이 두 클래스의 루트 태그 이름이 다릅니다. 내가받는 xml 페이로드는 이므로 사람 요청이 아니라 JAXB를 사용하여 PersonRequest 객체를 채울 수 있습니다.이 경우가 아니라 때때로 와 같은 XML도 수신 할 것입니다. 그 시간 또한 채워야합니다. Person 객체. – Dilip

답변

0

XStream 별칭 기능을 사용하여 페이로드의 루트 태그를 변경하려면 XStream을 사용할 수 있습니다. 이후 엔티티 개체로 변환 할 수 있습니다.

관련 문제