2016-08-17 41 views
0

我正在使用Spring-Cxf開發一個soap服務。在這裏我有我的響應結構如下使用Jaxws在Soap 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> 
    <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> 

但實際響應結構我需要的是以下其中一個新的標籤「行」被添加。

<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> 

任何人都可以解釋我應該在哪裏做出改變來實現這個目標?在註釋或創建一個新的類作爲「行」的任何變化(儘管這會不錯的辦法我猜)

+0

你爲什麼要這麼做?額外的元素應該在WSDL中,並且你的代碼應該被自動生成。因此,該過程應該是:1.將元素添加到WSDL,2.重新生成代碼,3.更改您的實現,以及4.通知所有WSDL更改的客戶端。也許4.應該是真正的第一。 – wallenborn

回答

1

添加註釋@XmlElementWrapper(name="row")addressList<row>標籤添加到您的XML。試一試。

您需要添加以下語句:

進口javax.xml.bind.annotation.XmlElementWrapper;

public class Response { 

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

謝謝你的回覆 – Sambuddha

+0

這種方法適用於我提到的例子。但是,如果有新的標籤之前多個屬性..例如

地址1
我的名1
地址4
我的NAME2
其中有多個屬性在添加的新標籤下,則此aparoach不起作用 – Sambuddha

相關問題