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

标签 java web-services weblogic jax-rpc

我有以下问题。我想制作网络服务,其中有很多输入参数。其中一些是 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 中 该元素可以像这些 在您的 SOAP 请求/响应中。

但是如果 nillable 被设置为 false(这是默认设置) 那么您可以预料到您现在遇到的错误。

希望对你有所帮助。谢谢。

关于java - 如何忽略Web服务中的空参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15882231/

相关文章:

java - 解决这个对象初始化问题的正确方法是什么?

java - 如何在 Java Sun HttpsServer 中使用 LetsEncrypt 证书?

java - 批量选择记录 Spring JDBCTemplate

c# - 除非 Silverlight 项目托管在同一个项目中,否则对 Web 服务的调用将失败

ldap - Spring Security 3 - 未授予任何权限

java - 为什么 Java 的 .addShutdownHook 在 BeagleBone Black 上不能用于 Ctrl-C?有解决方法吗?

java - 通过查询参数选择 Jersey 方法

java - SoapUI API : WsdlProject unable to load a 'composite' project

JAVA数据源

java - Weblogic 12c JPA 2.1 Spring 启动