Christopher Leung created CXF-6666: -------------------------------------- Summary: Permit "unknown" SOAP message header elements and attributes to prevent Unmarshalling Error: unexpected element Key: CXF-6666 URL: https://issues.apache.org/jira/browse/CXF-6666 Project: CXF Issue Type: Wish Components: JAXB Databinding, Soap Binding Affects Versions: 3.0.2 Reporter: Christopher Leung
How does one disable the strict validation on the *SOAP message header* that causes a "{{Unmarshalling Error: unexpected element}}" exception when unknown elements and attributes are encountered in the unmarshalling process. (In this case _unknown_ means that elements and attributes are present in the incoming SOAP header but do not exist in the object model.) The flow seems to be that [ReadHeadersInterceptor|https://cxf.apache.org/javadoc/latest/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.html] creates a {{DataReader}} that creates an unmarshaller. The unmarshaller determines whether the custom {{ValidationEventHandler}}, {{WSUIDValidationHandler}}, is set or not. {{WSUIDValidationHandler}} is ultimately responsible for throwing the exception. There appears to be a couple of ways at least to disable {{WSUIDValidationHandler}}. One is to set the {{setEventHandler}} flag of {{DataReaderImpl}} to false. The other is to ensure the {{veventHandler}} field of the same class is set to a more lenient custom {{ValidationEventHandler}}. I cannot determine a way in which to manipulate either of these two fields in {{DataReaderImpl}}. Is there a way to do it? -- This message was sent by Atlassian JIRA (v6.3.4#6332)