0

我正在使用 Apache Axis2 v 1.5.6 和 Axis1 v1.2.1

我正在使用它们从 Web 服务 .wsdl 生成 Java 对象。

然后我正在访问这些对象的值。例如

recevedObject.getFooInfo().getFooInfoGroup1().getTheValue().

我应该在这样的情况下执行空检查吗?或者 Axis 是否确保所有 Object 字段都不为空?getTheValue()如果返回就好了null。但我不想因为getFooInfo()返回而得到空指针异常null

4

2 回答 2

0

基本上,Axis 有助于将 SOAP(XML) 响应转换为对象结构,并且此 SOAP 元素是使用 XSD 定义的。因此,获得 NPE 取决于您在 XSD 中的 XML 元素声明,这将成为响应验证的来源。例如,如果表示 XML/SOAP 响应消息中的 FooInfo 元素的 getFooInfo 元素,如果它是 nil-able,那么在 getFooInfo() 时您可能会获得 NPE,如果它不是 nil-able,那么您将不会获得 NPE。

于 2012-08-17T05:59:10.597 回答
0

如果您不应该在 XML 中接收到 fooInfo 的空值并且在 XSD 中定义,那么您应该激活 XSD 中的 XML 验证。

例如,您可以通过启用模式验证的选项将其与 CXF 一起使用。我猜 AXIS 中可能有类似的东西。

于 2012-08-17T08:34:24.080 回答