0

Apache Axis2 v 1.5.6 および Axis1 v1.2.1 を使用しています

これらを使用して、Web サービス .wsdl から Java オブジェクトを生成しています。

次に、それらのオブジェクトの値にアクセスしています。例えば

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

このような場合、null チェックを実行する必要があります。それとも、Axis はどの Object フィールドも null でないことを確認しますか? getTheValue()返された場合は問題ありませんnullgetFooInfo()しかし、戻り値があるため、Null ポインター例外を取得したくありません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 の null 値を受け取るべきではなく、それが XSD で定義されている場合は、XSD に関する XML 検証を有効にする必要があります。

たとえば、schema-validation-enabledオプションを使用して CXF で使用できます。おそらくAXISにも似たようなものがあると思います。

于 2012-08-17T08:34:24.080 に答える