RE: java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to org.apache.axiom.soap.SOAPFaultDetail

"Shah, Sumit (CGI Federal)" <[email protected]>
Newsgroups gmane.text.xml.axis.user
Message-ID <3357D2C72D9A0345A66DFB0B043C04166EEA4CDC@FFX-S-EX-C1.cgifederal.com>
Thanks Andreas...I will try your suggestion.

-----Original Message-----
From: Andreas Veithen [mailto:[email protected]] 
Sent: Saturday, March 16, 2013 2:47 PM
To: java-user
Subject: Re: java.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to org.apache.axiom.soap.SOAPFaultDetail

Could you insert some code that calls
soapFault.getFirstChildWithName(SOAP11Constants.QNAME_FAULT_DETAIL)
and try to determine where the returned OMElement is coming from? It obviously can't be the one returned by
axisFault.getFaultDetailElement() because that one must be a SOAPFaultDetail.

Andreas

On Fri, Mar 15, 2013 at 10:03 PM, Shah, Sumit (CGI Federal) <[email protected]> wrote:
> Hi Andreas,
>
> This is how I create the SOAP Fault. This is using Axiom 1.2.13. I am not sure if this has changed in 1.2.14.
>
>                 catch (AxisFault axisFault) {
>                         if (axisFault.getFaultMessageContext() != null && axisFault.getFaultMessageContext().getEnvelope() != null) {
>                             SOAPFault soapFault = null;
>
>                             if (axisFault.getFaultMessageContext().isSOAP11()) {
>                                 soapFault = new SOAP11Factory().createSOAPFault(axisFault.getFaultMessageContext().getEnvelope().getBody());
>                             }
>                             else {
>                                 soapFault = new 
> SOAP12Factory().createSOAPFault(axisFault.getFaultMessageContext().get
> Envelope().getBody());
>
>                                 if (axisFault.getFaultNodeElement() != null) {
>                                     soapFault.setNode(axisFault.getFaultNodeElement());
>                                 }
>                             }
>
>                             if (axisFault.getFaultCodeElement() != null) {
>                                 soapFault.setCode(axisFault.getFaultCodeElement());
>                             }
>
>                             if (axisFault.getFaultDetailElement() != null) {
>                                 soapFault.setDetail(axisFault.getFaultDetailElement());
>                             }
>
>                             if (axisFault.getFaultReasonElement() != null) {
>                                 soapFault.setReason(axisFault.getFaultReasonElement());
>                             }
>
>                             if (axisFault.getFaultRoleElement() != null) {
>                                 soapFault.setRole(axisFault.getFaultRoleElement());
>                             }
>
>                                         //This get called
>                             this.handleSOAPFault(method, soapFault);
>                         }
>                         else {
>                             throw axisFault;
>                         }
>                 }
>
>
> The CCE happens in the method here:
> protected void handleSOAPFault(Method method, SOAPFault soapFault) throws Exception {
>         Exception faultException = null;
>
>           //The ClassCastException is a result of this call
>         if (soapFault.getDetail() != null) {
>             Map<String, Object> jaxbContextProperties = null;
>
> //other logic removed for brevity.
> }
>
> Thanks
> Sumit
>
> -----Original Message-----
> From: Andreas Veithen [mailto:[email protected]]
> Sent: Wednesday, March 13, 2013 12:25 PM
> To: java-user
> Subject: Re: java.lang.ClassCastException: 
> org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to 
> org.apache.axiom.soap.SOAPFaultDetail
>
> How is the SOAPFault created?
>
> Andreas
>
> On Wed, Mar 13, 2013 at 3:19 PM, Shah, Sumit (CGI Federal) <[email protected]> wrote:
>> Thanks Yashwanth. It seems like this is an issue in Axiom 1.2.14, 
>> because both the SOAPFault11Impl and OMElementImpl are classes in 
>> Axiom 1.2.14. Does this mean this a bug?
>>
>>
>>
>> Sumit
>>
>>
>>
>> From: Yashwanth Rajaram -X (yrajaram - ZENSAR TECHNOLOGIES INC at
>> Cisco) [mailto:[email protected]]
>> Sent: Tuesday, March 12, 2013 1:35 PM
>> To: [email protected]
>> Subject: RE: java.lang.ClassCastException:
>> org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to 
>> org.apache.axiom.soap.SOAPFaultDetail
>>
>>
>>
>> Sumit, I think you might have to do something like this:
>>
>>
>>
>> SOAPFaultDetail detail =
>> OMAbstractFactory.getSOAP11Factory().createSOAPFaultDetail();
>>
>> detail.addChild(getFirstChildWithName(SOAP11Constants.QNAME_FAULT_DET
>> A
>> IL));
>>
>>
>>
>> Sincerely, Yashwanth
>>
>> Technical Architect, EBIS
>>
>>
>>
>> From: Shah, Sumit (CGI Federal) [mailto:[email protected]]
>> Sent: Tuesday, March 12, 2013 8:16 AM
>> To: [email protected]
>> Subject: java.lang.ClassCastException:
>> org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to 
>> org.apache.axiom.soap.SOAPFaultDetail
>>
>>
>>
>> Hi,
>>
>>
>>
>> I am running into the following ClassCastException running Axis2 
>> 1.6.2 and Axiom 1.2.14 (I have also included the axiom-compat jar for 
>> backwards compatibility). I noticed a similar issue reported for 
>> Synapse/Carbon https://wso2.org/jira/browse/CARBON-13759. I am not 
>> sure if these are related.
>>
>>
>>
>>
>>
>> java.lang.ClassCastException:
>> org.apache.axiom.om.impl.llom.OMElementImpl
>> cannot be cast to org.apache.axiom.soap.SOAPFaultDetail
>>
>>
>>
>> Its occurring here in the SOAP11FaultImpl:
>>
>>
>>
>> public SOAPFaultDetail getDetail() {
>>
>>         return (SOAPFaultDetail)
>> getFirstChildWithName(SOAP11Constants.QNAME_FAULT_DETAIL);
>>
>> }
>>
>>
>>
>> I see that getFirstChildWithName() currently returns an OMELement, 
>> however the cast above fails. I would appreciate any suggestions.
>>
>>
>>
>> Thanks
>>
>> Sumit
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.