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)

Reply via email to