2013-04-08 36 views
3

我有以下問題。我想製作網絡服務,它有很多輸入參數。其中一些是雙重類型。問題是,一些雙打都不是必要的,可以傳遞給我的空標籤服務,如如何忽略Web服務中的空參數?

<param xsi:type="xsd:double"></param> 

的WebLogic,因此,前轉向我的代碼試圖解析雙,我得到

<faultstring>empty String</faultstring> 

響應與它

<bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0">java.lang.NumberFormatException: empty String 
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011) 
at java.lang.Double.parseDouble(Double.java:540) 

所以我的主要問題是,我怎麼能得到這樣的空標籤爲空進入雙可變例外?或者,如何在WebLogic嘗試解析它之前指定空值? 提前謝謝!

+0

你能明確說明這就像空 2013-04-08 15:45:57

+0

@better_use_mkstemp這樣WS拋出異常,它說,參數丟失,問題是,我不能刪除那些標籤,即使它們是空的,但必須將空標籤值設爲空,而不用WL試圖解析它 – Kiman 2013-04-09 13:22:59

+0

嘗試添加此屬性:'minOccurs =「0」'(根據需要調整其名稱空間) – acdcjunior 2013-05-03 21:46:45

回答

1

請查看您的XSD消息結構的定義。 重點關注兩種不同的特殊屬性,可以爲XSD中的任何元素設置消息格式。 這些是:minOccurs和nillable。 回答你的問題出在設定的nillable屬性爲「true」(這是默認爲false。)

讓我們來看看什麼的nillable手段, 的nillable值T/F意味着一個元素是否可以有一個空值(空字符串)或不。

所以,如果的nillable設置爲真爲

<元素名稱= 「爲anyelement」 的nillable = 「真」 在你的XSD /> 然後 該元素能像這些 < anyEement> < /爲anyelement >或在你的SOAP請求/響應中的< anyElement /> 。

但是如果nillable被設置爲false(這是默認情況下它是) 那麼你可以預料到你現在正在得到的錯誤。

我希望它有幫助。謝謝。