如何忽略Web服务中的空参数?

时间:2013-04-08 14:48:51

标签: java web-services weblogic jax-rpc

我有以下问题。我想制作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)

所以我的主要问题是,如何将这样的空标记作为null变为Double变量?或者,如何在WebLogic尝试解析之前指定该空值? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

请查看定义了Message结构的XSD。 专注于两个不同但特殊的属性,可以为XSD中的任何元素设置消息格式。 它们是:minOccurs和nillable。 您的问题的答案在于将nillable属性设置为“true”(默认情况下为false。)

让我们看看nillable意味着什么, nillable value T / F表示元素是否可以具有空值(空字符串)。

因此,如果nillable设置为true

&lt; element name =“anyElement”nillable =“true”/&gt; 然后在你的XSD中 那个元素可以像这样 &LT; anyEement&GT;&LT; /&为anyelement GT;或者&lt; anyElement /&gt; 在您的SOAP请求/响应中。

但是如果nillable设置为false(默认情况下是这样) 那么你可以期待你现在得到的错误。

我希望它有所帮助。感谢。