2012-06-27 53 views
0

我目前工作的一些一套採取的POJO /豆類將通過Axis2的部署參數的Web服務。問題在於生成WSDL的Axis2的內置代碼以與我需要的方式不同的方式表示POJO。如何設置Axis2以使用(複雜)數據類型與自定義模式?

例如,我有以下類:

public class Employee { 
    private String firstName; 
    private String lastName; 
    //mutators, accessors 
} 

public class Department { 
    private String name; 
    private List<Employee> employees; 
    //mutators, accessors 
} 

我想了XML的樣子(減去所有的命名空間數據):

<department> 
    <name>marketing<name> 
    <employees> 
    <employee> 
     <firstName>Juan</firstName> 
     <lastName>dela Cruz</lastName> 
    <employee> 
    <employee> 
     <firstName>Pedro</firstName> 
     <lastName>Mahusay</lastName> 
    <employee> 
    </employees> 
<department> 

然而,Axis2的將代表上述XML將成爲:

<department> 
    <name>marketing<name> 
    <employees> 
    <firstName>Juan</firstName> 
    <lastName>dela Cruz</lastName> 
    </employees> 
    <employees> 
    <firstName>Pedro</firstName> 
    <lastName>Mahusay</lastName> 
    <employees> 
<department> 

我已經看了MessageBuilders和MessageFormatters,但我仍然不知道如何將XML處理成OMElement(在Builder中)以使其工作。我不知道Axis2如何將這些OMElement轉換爲Web服務代碼可以使用的Beans。有沒有(也許更簡單或更合乎邏輯/有效率?)的方式來使它像第一個一樣工作?

謝謝。

回答

0

您需要一個對象僱員其中包含一個僱員對象列表。

雖然自己編寫WSDL和XSD,然後從中生成軸存根會更好,這樣就可以完全控制xml格式,這也是一種最佳做法。

+0

呀,我也在考慮走另一條路(WSDL2Java的)。然而,由於Web服務將被嵌入到現有的Web應用程序,我想爲它使用?WSDL工具生成的WSDL。另外一個** Employees **類很「不自然」(儘管我見過Axis2這樣做)。但是,這可能是最簡單的解決方案/解決方法。謝謝。 –

相關問題