You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Venkatasrinath Yelchuru (JIRA)" <ji...@apache.org> on 2017/05/29 11:53:04 UTC

[jira] [Commented] (CXF-5427) set-jaxb-validation-event-handler=false not working when fault message is changed.

    [ https://issues.apache.org/jira/browse/CXF-5427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16028260#comment-16028260 ] 

Venkatasrinath Yelchuru commented on CXF-5427:
----------------------------------------------

Hi,
I notice this issue in 3.1.11 version.
can some one tell me how to resolve this Issue ?

thanks 

regards,
Venkat
venkat_scope@yahoo.com

> set-jaxb-validation-event-handler=false not working when fault message is changed.
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-5427
>                 URL: https://issues.apache.org/jira/browse/CXF-5427
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 2.6.2
>         Environment: CXF 2.6.2, JAXB2.2.4
>            Reporter: Pranab Baishya
>            Assignee: Daniel Kulp
>              Labels: patch
>             Fix For: 2.7.9, 3.0.0-milestone2
>
>
> Hello,
> We have a requirement to consumed web services for non-breaking changes in the producer web services so that we need not generate/ recompile CXF generated clients code every time for some non breaking changes in the Web service producer/server.
> The changes that can happen in the producer web services or server are as follows:
> 1.Changes to the Data Structures such as addition of a new element at the end for both inbound and outbound messages.
> This has an impact on the CXF client as if the data structure changes, in the client code, we will get marshal and unmarshall error. To resolve the issue, we did a small fix to add
> @EndpointProperties({@EndpointProperty(key = "set-jaxb-validation-event-handler", value="false")}) 
> in the Service interfaces code generated by CXF . This fix seems to fix the problem when the message are in request and response format.
> But, the above fix is not taking care of the scenerio when the CXF client is receiving a fault error message and there is a change in the structure of fault error message say, a new field is added to the message which is not available in the cxf generated code.
> The XML structure of response in error scenario:
> <?xml version="1.0"?>
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
>   <s:Body>
>     <s:Fault>
>       <faultcode>s:eInvalidArguments</faultcode>
>       <faultstring xml:lang="en-US">eInvalidArguments</faultstring>
>       <detail>
>         <Error xmlns="<abc>" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
>           <CorrelationId xmlns="<abc>">1234</CorrelationId>
>           <DateTime xmlns="<abc>">XXXX-XX-XXTXX:XX:XX.XXXXXXXX</DateTime>
>           <Description xmlns="<abc>">eInvalidArguments</Description>
>           <InternalDescription xmlns="<abc>">Access denied to this user</InternalDescription>
>           <Type>eInvalidArguments</Type>
>           <UserToken xmlns:a="<abc>">
>             <a:Status>Ok</a:Status>
>             <a:Token>xyz</a:Token>
>           </UserToken>
>           <InternalErrorCode>1</InternalErrorCode>
>         </Error>
>       </detail>
>     </s:Fault>
>   </s:Body>
> </s:Envelope>
> Here, internalErrorCode is a newly added element in the webservice which is breaking our client code by throwing "unwinding now org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element" because the in the generated client code InternalErrorCode field doesnt exists. 
> We are not getting the marshal and unmarshall exception in case of proper request and response message even though there is change in the inbound or outbound message.
> Can we fix the issue quickly or CXF provide any quick fix for the fault error scenerio when there is a change in the error structure. Pleas suggest.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)