我的Java Web服務,以及一個參數一個Web方法是一個自定義的Java類型C#的客戶端 - 數據互操作性問題
public class KeyList {
public Integer key;
public Integer[] nums ;
public Integer result;
}
Web服務更新的結果值,並返回鍵列表對象給客戶。
我有一個C#客戶端到此Web服務(通過添加服務引用並指向wsdl url在Visual Studio中生成)。當我收到C#中的keyList對象時,第一部分(整數鍵)出來爲0. 如果我改變Java自定義類型在KeyList類型中使用int鍵(而不是Integer鍵),那麼它對於C#客戶端。
我想看看如果WSDL是兩種情況(使用int和整數)之間的顯着差異,但事實證明,唯一的區別是的minOccurs屬性。
使用時使用整數鍵
<xs:element name="key" type="xs:int" minOccurs="0" />
當INT關鍵
<xs:element name="key" type="xs:int" />
什麼是C#的客戶端無法正常接收到更新的整數從服務的返回值的原因是什麼?毋庸置疑,無論哪種方式,它都適用於Java客戶端。
編輯:由VS爲密鑰列表生成 C#類:
公共類密鑰列表:INotifyPropertyChanged的{
private int keyField;
private bool keyFieldSpecified;
private int?[] numsField;
private PropertyChangedEventHandler PropertyChanged;
private int resultField;
private bool resultFieldSpecified;
public event PropertyChangedEventHandler PropertyChanged;
public keyList();
protected void RaisePropertyChanged(string propertyName);
[XmlElement(Form=XmlSchemaForm.Unqualified, Order=0)]
public int key { get; set; }
[XmlElement("nums", Form=XmlSchemaForm.Unqualified, IsNullable=true, Order=1)]
public int?[] nums { get; set; }
[XmlElement(Form=XmlSchemaForm.Unqualified, Order=2)]
public int result { get; set; }
[XmlIgnore]
public bool resultSpecified { get; set; }
}
這真的是一個C#的問題,而不是一個Java - 你的問題主要涉及到C#客戶端的行爲,而不是Java的行爲。重新標記。 – skaffman
你可以發佈視覺工作室爲你生成的類嗎? – alun
此外,這是用「添加服務參考」還是「添加Web參考」完成的? –