this is the exception location:
//org.apache.axis2.client.OperationClient

            if 
(resenvelope.hasFault()||responseMessageContext.isProcessingFault()) 
            {
                if (options.isExceptionToBeThrownOnSOAPFault()) {
                    // does the SOAPFault has a detail element for Exception

//I would suggest looking at the envelope and the body of the envelope before 
passing to getInboundFaultFromMessageContext
log.debug("getEnvelope="+messageContext.getEnvelope());
log.debug("getBody="+messageContext.getEnvelope().getBody());


//                    throw 
Utils.getInboundFaultFromMessageContext(responseMessageContext);
                }
            }

//passed to org.apache.axis2.util.Utils:

    public static AxisFault getInboundFaultFromMessageContext(MessageContext 
messageContext) {
        // Get the fault if it's already been extracted by a handler
        AxisFault result = (AxisFault) 
messageContext.getProperty(Constants.INBOUND_FAULT_OVERRIDE);
        // Else, extract it from the SOAPBody
        if (result == null) {
            SOAPEnvelope envelope = messageContext.getEnvelope();
            SOAPFault soapFault;
            SOAPBody soapBody;
            if (envelope != null && (soapBody = envelope.getBody()) != null) {
                if ((soapFault = soapBody.getFault()) != null) {
                    return new AxisFault(soapFault, messageContext);
                }
                // If its a REST response the content is not a SOAP envelop and 
hence we will
                // Have use the soap body as the exception
                if (messageContext.isDoingREST() && soapBody.getFirstElement() 
!= null) {
                    return new AxisFault(soapBody.getFirstElement().toString());
                }
            }
            // Not going to be able to
            throw new IllegalArgumentException(
                    "The MessageContext does not have an associated 
SOAPFault.");
        }
        return result;
    }
//either 
//messageContext.getEnvelope() is null
//messageContext.getEnvelope().getBody() is null

dziekuje,Martin 
______________________________________________ 
Note de déni et de confidentialité
 Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez 
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est 
interdite. Ce message sert à l'information seulement et n'aura pas n'importe 
quel effet légalement obligatoire. Étant donné que les email peuvent facilement 
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité 
pour le contenu fourni.




> Date: Tue, 5 Apr 2011 14:24:23 +0200
> From: [email protected]
> To: [email protected]
> Subject: axis2: how to ignore HTTP response status code?
> 
> Hello,
> 
> I have to connect with WebService that in case of error return the same
> SOAP envelope as in case of normal operation, but sets HTTP status to
> "500 Internal Server Error". Then I got exception:
> 
>       java.lang.IllegalArgumentException: The MessageContext does not have an
> associated SOAPFault.
>               at
> org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:455)
>               at
> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
>               at
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
>               at
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
>               at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
> 
> 
> When I change (on my emulator) HTTP status to `200 OK` then all works
> fine. My `InFlow` and `InFaultFlow` are the same.
> 
> How can I set axis2 to ignore HTTP status or use normal `InFlow` for
> responses with HTTP status 5xx?
> 
> Regards,
> Michał
> 
> PS This is copy of my question on StackOverflow:
> http://stackoverflow.com/questions/5551705/axis2-how-to-ignore-http-response-status-code
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
                                          

Reply via email to