3

我有以下问题。我想做网络服务,它有很多输入参数。其中一些是双类型的。问题是一些双打不是必需的,可以作为空标签传递给我的服务,比如

<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 尝试解析它之前指定该空值?先感谢您!

4

1 回答 1

1

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

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

因此,如果 nillable 设置为 true

<element name="anyElement" nillable="true"/> 在您的 XSD 中,那么该元素可以像这些 <anyEement></anyElement> 或 <anyElement/> 在您的 SOAP 请求/响应中。

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

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

于 2013-09-19T20:43:47.353 回答