2012-06-27 39 views
0

我創建了一個SOAP Java Web服務和一個Java WebService客戶端來調用Webservice。 WebService的參數是String和Double。當我使用帶有String和Double參數的java WebService客戶端調用webservice時,我從Web服務獲得所需的響應。但是,當我從調用.NET Web服務客戶端用字符串值和值1.0相同的Web服務,

.Net Webservice數據類型

ordConf[0].slNo = "1234"; <br/> 
ordConf[0].qty = (Double)1.0; <br/><br/> 

此WebService是無法理解的雙重價值,並引發NullPointerException異常的雙重價值。

如何確保Double值從.Net WebService客戶端傳遞到Java WebService。我的WSDL複雜類型片段是

xsd:element minOccurs="0" name="slno" nillable="true" type="xsd:string" 
xsd:element minOccurs="0" name="qty" nillable="true" type="xsd:double" 

下面是客戶端的代碼片段。

WebReference.InterWareHouseService IwConf = new WebReference.InterWareHouseService();

WebReference.IwOutboundOrder [] ordConf;
WebReference.Response [] ordRespConf;

ordConf = new WebReference.IwOutboundOrder[1];<br/><br/> 

    ordConf[0] = new WebReference.IwOutboundOrder();<br/> 
    ordConf[0].custOrderNo = "13337097";<br/> 
    ordConf[0].itemNo = "DS-SFP-FC8G-SW";<br/> 
    ordConf[0].slNo = "1234";<br/> 
    ordConf[0].qty = 1.0;<br/> 
    ordConf[0].weight = 0.5;<br/> 
    ordRespConf = IwConf.confirmShipment(ordConf);<br/> 
+0

你在使用什麼樣的.NET Web服務客戶端?你使用「添加服務參考」?你可以顯示你用來撥打服務的代碼嗎? –

+0

將代碼附加到上述問題 – Kannan

回答

0

嘗試使用值類型double,而不是在Java代碼中引用類型Double

+0

謝謝Jonny。我在Web服務中將數據類型改爲了兩倍。現在它不會拋出NullPointerException,但我在Web服務中獲得的值是0.0。如果我在WebService中將QTY值從double更改爲String,那麼我將這些值傳入Web Service,但理想情況下,我希望僅在Web Service中接收兩倍的值。任何幫助? – Kannan

+1

有可能檢查'qtySpecified'布爾值。另一種選擇是你的C#類的''qty'屬性的類型是'double?'。 – bluevector

+0

謝謝Jonny。最初我不瞭解qtySpecified可用性檢查。後來我下載了一個名爲Wizdl的工具來測試Java WS。在那個工具中,他們有一個配置qtySpecified布爾值。當我將該值設置爲true時,數據從.net傳遞到Java – Kannan

相關問題