我有以下问题。我想制作网络服务,其中有很多输入参数。其中一些是 Double 类型。问题是有些 double 不是必需的,可以作为空标签传递给我的服务,比如
<param xsi:type="xsd:double"></param>
因此,WebLogic 在转向我的代码之前尝试解析那个 double,我得到了
<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 尝试解析它之前指定该空值? 提前致谢!
最佳答案
请查看定义消息结构的 XSD。 关注两个不同但特殊的属性,它们可以为消息格式的 XSD 中的任何元素设置。 它们是:minOccurs 和 nillable。 您的问题的答案在于将 nillable 属性设置为“true”(默认情况下为 false。)
让我们看看 nillable 是什么意思, nillable value T/F 表示一个元素是否可以有一个空值(空字符串)。
因此,如果将 nillable 设置为 true 为
<元素名称="anyElement"nillable="true"/>
然后在你的 XSD 中
该元素可以像这些
但是如果 nillable 被设置为 false(这是默认设置) 那么您可以预料到您现在遇到的错误。
希望对你有所帮助。谢谢。
关于java - 如何忽略Web服务中的空参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15882231/