2016-08-17 2 views
0

Spring-Cxf를 사용하여 하나의 비누 서비스를 개발 중입니다. 여기에서 나는 현재의 응답이Jaxws를 사용하여 비누 응답에 추가 태그 또는 요소 추가

<response> 
    <name>RASSI ANDREA</name> 
    <addressList type="1"> 
     <address>Address 1</address> 
     <address>Address 2</address> 
     <address>Address 3</address> 
    </addressList> 
    <addressList type="2"> 
     <address>Address 4</address> 
     <address>Address 5</address> 
     <address>Address 6</address> 
    </addressList> 
</response> 

처럼오고있다

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "response", propOrder = { 
    "name", 
    "addressList" 
}) 
public class Response 
{ 

private String name; 
private List<Address> addressList; 
} 

-- getter and setter follows 

아래로 내 응답 구조를 가지고하지만 내가 필요로하는 실제 응답 구조는 새 태그 '행'이 추가된다 아래에 있습니다.

<response> 
    <name>RASSI ANDREA</name> 
    <row> 
     <addressList type="1"> 
     <address>Address 1</address> 
     <address>Address 2</address> 
     <address>Address 3</address> 
     </addressList> 
    </row> 
    <row> 
     <addressList type="2"> 
     <address>Address 4</address> 
     <address>Address 5</address> 
     <address>Address 6</address> 
     </addressList> 
    </row> 
</response> 

아무에게도 이것을 설명하기 위해 어디에서 변경해야합니까? 주석 또는 '행'과 같은 새로운 클래스를 생성의 변화 (하지만이 것 같아요 나쁜 방법) 당신의 XML에 <row> 태그를 추가됩니다 addressList에 주석 @XmlElementWrapper(name="row") 추가

+0

는 왜 이러는거야? 추가 요소는 WSDL에 있어야하며 코드는 자동 생성되어야합니다. 프로 시저는 다음과 같아야합니다. 1. 요소를 WSDL에 추가합니다. 2. 코드를 다시 생성합니다. 3. 구현을 변경합니다. 4. 모든 클라이언트에 WSDL 변경을 알립니다. 그리고 아마 4. 첫 번째가되어야합니다. – wallenborn

답변

1

. 시도 해봐.

다음과 같은 문장을 추가해야합니다

수입 javax.xml.bind.annotation.XmlElementWrapper;

public class Response { 

    private String name; 
    @XmlElementWrapper(name="row") // Add this line here 
    private List<Address> addressList; 
} 
+0

yr 답장을 보내 주셔서 감사합니다 – Sambuddha

+0

이 접근 방식은 앞서 언급 한 예제에서 작동합니다. 그러나 새로운 태그 앞에 여러 속성은 .. 예를 들어 어떤이있는 경우

주소 1
내 이름 1
주소 4
내 NAME2
새 태그 아래에 여러 속성이있는 경우이 아포 패치가 작동하지 않습니다. – Sambuddha