4 Stimmen

JAXB Unerwartetes Element

Ich habe einen JAXB-Webdienst, der nicht erwartet, dass die Element-ID weitergegeben wird, und einen Client, der das Element trotzdem weitergibt.

Die Version des Webdienstes, die sich derzeit in der Produktion befindet, ignoriert dieses unerwartete Element stillschweigend, aber die Version in der Qualitätssicherung beschwert sich. Bei der Verfolgung der XML-Daten eingehender Anforderungen konnte ich feststellen, dass das Element Id sowohl an die Produktions- als auch an die QA-Version des Dienstes gesendet wird.

Die Fehlermeldung in QA lautet:

org.apache.cxf.interceptor.Fault: Unmarshalling-Fehler: unerwartetes Element (uri:" http://mydomain.com/transaction ", local: "Id"). Erwartete Elemente sind...

Die Botschaft ist ziemlich klar, aber die Lösung ist es nicht, da der Client weit verbreitet ist.

Als ersten Schritt möchte ich versuchen zu verstehen, warum die Produktionsversion dieses zusätzliche Element akzeptiert, während die QA-Version dies nicht tut. Es gibt nicht viele Unterschiede zwischen den beiden Versionen.

Vorschläge, wo man suchen sollte?

0voto

pappu_kutty Punkte 2240

Ich weiß nicht, ob ich Sie Frage richtig, aber was ich verstehe, dass Sie erstellen Xml mit Jaxb Marshaller und senden Sie es an Service. in Prod Ihr Service akzeptiert Element, das je Sie übergeben..ich nehme an, dass Sie restfull Webservice, die unmarshalls die Xml und Validierung durch Code haben. ich schlage vor, statt Inspektion eingehende Xml-Anfrage überprüfen Sie den Code in QA und PROD. bereitgestellt. da die Ausnahme während der Validierung, die nach unmarshalling von Xml geschieht geworfen werden hoffe, dass dies hilft :).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X