Frage Apache AXIS Ignore / Überspringt zusätzliches Element beim Parsen


Wir verbrauchen den Webservice von Dritten. Immer wenn sie das XML-Schema aktualisieren, wie das neue Element hinzufügen, erhalten wir die folgende Fehlermeldung.

"SAXException: Ungültiges Element ..."

Gibt es eine Möglichkeit in AXIS zu fragen, das zusätzliche Element zu überspringen, das bei der Analyse von XML empfangen wurde?

Ich habe einen Web-Service-Client mit AXIS erstellt. Früher habe ich XML wie folgt empfangen

<Flight>
   <AirlineCode>AB</AirlineCode> 
</Flight>

und alles hat gut funktioniert. Aber jetzt bekomme ich ein zusätzliches Tag als Antwort.

<Flight>
   <AirlineCode>AB</AirlineCode> 
   <OtherCode>XX</OtherCode> 
</Flight>

Und dafür bekomme ich die Ausnahme "Ungültiges Element".

Vielen Dank


6
2017-09-26 08:27


Ursprung


Antworten:


Apache Axis2 Version 1.7.0-SNAPSHOT hat die Fähigkeit zu ignoriere unerwartete Elemente durch das Zusammenstellen mit dem -Eiu Schalter.

Downloads für 1.7.0-SNAPSHOT


3
2017-12-02 17:28



Daniels Antwort sollte helfen, aber sei dir bewusst, dass die Ausgabe, die du von Axis2 bekommst, sich sehr von der unterscheidet, die du von Axis bekommst, so dass du deine Integration wahrscheinlich etwas umschreiben musst. Außerdem stellt die von ihm bereitgestellte Verbindung eine Teilmenge von Axis2 dar.

Du wirst den ganzen Shebang brauchen, damit es funktioniert, und das ist hier verfügbar, da ich dieses Release noch nicht in einem Maven-Repository finden konnte: https://repository.apache.org/content/groups/snapshots/org/apache/axis2/axis2/1.7.0-SNAPSHOT/

Weil diese Version nicht in Maven verwaltet wird, ist es jetzt ein großer Schmerz, die Abhängigkeiten herauszufinden. Hier ist eine Momentaufnahme der Abhängigkeiten, die ich verwendet habe:

compile 'org.apache.ws.commons.schema:XmlSchema:1.4.7'
compile 'org.apache.ws.commons.axiom:axiom-api:1.2.15'
compile 'org.apache.neethi:neethi:3.0.1'
compile 'axis:axis-wsdl4j:1.6.3'
compile 'commons-logging:commons-logging:1.1.1'
compile files('C:\\temp\\wsdl\\axis2-1.7.0-SNAPSHOT.jar', 'C:\\temp\\wsdl\\axiom.jar')
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'

Die Axiomabhängigkeit musste ich manuell herunterladen, da der Versuch, die vom Repository verwaltete Version zu verwenden, aus Gründen, die mir nicht klar sind, nicht funktionierte.

Abgesehen davon, wenn Sie nicht mit dem Axis-Technologie-Stack verheiratet sind, würde ich empfehlen, dies zu vermeiden und stattdessen mit einem dynamischen WSDL-Java-Framework zu arbeiten, das WebServices unterstützen kann, deren Schema-Struktur sich ändern könnte.


0
2017-08-28 20:59