2012-08-16 38 views
0

我使用的是Apache Axis2 v 1.5.6和Axis1 v1.2.1生成的類中的空值

我正在使用這些來從Web服務.wsdl生成Java對象。

我然後訪問這些對象的值。例如

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

我應該在這些情況下執行空檢查。或者Axis確保沒有任何Object字段爲空?它很好,如果getTheValue()返回null。但我不希望得到空指針異常,因爲getFooInfo()返回null

回答

0

基本上,Axis有助於將SOAP(XML)響應轉換爲對象結構,並且此SOAP元素是使用XSD定義的。 因此,獲取NPE取決於XSD中的XML元素聲明,它將成爲響應驗證的來源。例如。如果代表的getFooInfo元素允許在XML/SOAP響應消息中聲明FooInfo元素,並且如果這是無效的,那麼您有可能在getFooInfo()時獲得NPE,並且如果它不可用,那麼您將不會獲得NPE。

0

如果您的XML中沒有收到fooInfo的空值並且在您的XSD中定義了該值,則應該激活XML驗證w.r.t. XSD。

例如,您可以通過支持模式驗證的選項將它與CXF一起使用。我想,在AXIS中可能有類似的東西。