[ 
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_sc...@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)

Reply via email to