axis2 "неожиданное значение субэлемента" - PullRequest
0 голосов
/ 01 сентября 2010

Я пытаюсь использовать Axis2 для подключения к веб-сервису SOAP. Ранее это работало в Оси 1, но 2 вызывает проблемы. Я обновил код Java, используя wsdl2java, который сгенерировал заглушки для Axis2, но он падает при обработке элемента ответа сервера с «неожиданным значением подэлемента».

Фрагмент рассматриваемого документа wsdl:

<complexType name="A">
<sequence>
<element name="a" type="xsd:base64Binary" minOccurs="1" maxOccurs="1" nillable="false" />
<element name="b" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="c" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="d" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="e" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="f" type="xsd:string" minOccurs="1" maxOccurs="1" />
</sequence>
</complexType>

Возвращаемый ответ выглядит так:

<stuff>
<a>dsfusdbifsdisuibvuidnfuisndfvl\sbvuidn</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>
<stuff>
<a>dsfusdbifsdisdfsfsdfsdfuibvuidnfuisndfvl\dfgd</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>
<stuff>
<a>dsfusdbifsdisuibvuidnfuisndfvl\sdfsdfvv</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>
<stuff>
<a>wwasdfgfbdfb\sbv==uidn</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>

такие вещи. Большинство из этих <stuff> блоков обрабатываются нормально, но последний отказывает в <b> с указанной выше ошибкой. При отладке кода происходит сбой, потому что reader.isStartElement() возвращает false, а new javax.xml.namespace.QName("","b").equals(reader.getName()) - false - reader.getName() возвращает «a». Далее при отладке reader.currentElement сообщает " string " вместо типа обернутого объекта, который он обычно возвращает. Я пробовал это с Аксиом 1.2.7 и 1.2.8 - оба, похоже, страдают от одной и той же проблемы. Это известная ошибка, или кто-нибудь может пролить свет на то, что может происходить?

1 Ответ

0 голосов
/ 06 сентября 2010

Похоже, что это проблема с генератором привязки SAX. Переключение в привязках JAXB устранило проблему.

...