Hello,

i want to return SOAPFaults to inform the client in the case sth. went wrong on the service side.
To return a SOAPFault I created the following method in my serviceclass:
------
protected void throwSOAPFault(String text) throws AxisFault{
MessageContext messageContext = MessageContext.getCurrentMessageContext();
                Exception t = new Exception(text);
                
                SOAPFactory soapFactory = OMAbstractFactory.getSOAP11Factory();
                
                SOAPFaultCode soapFaultCode = soapFactory.createSOAPFaultCode();
                soapFaultCode.declareNamespace("http://someurl";, "m");
                
                SOAPFaultValue soapFaultValue = 
soapFactory.createSOAPFaultValue();
                soapFaultValue.setText("m:FaulException");
messageContext.setProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME, soapFaultCode);
                
                SOAPFaultReason soapFaultReason = 
soapFactory.createSOAPFaultReason();
SOAPFaultText soapFaultText = soapFactory.createSOAPFaultText(soapFaultReason);
                soapFaultText.setText(text);
messageContext .setProperty(SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME, soapFaultReason);
                
                SOAPFaultDetail soapFaultDetail = 
soapFactory.createSOAPFaultDetail();
                QName qName = new QName("http://someurl";, "FaultException");
                OMElement detail = soapFactory.createOMElement(qName, null);
                Throwable e = t;
                while (e != null){
                        OMElement exception = 
soapFactory.createOMElement(qName, null);
                        exception.setText(t.getMessage());
                        detail.addChild(exception);
                        e = e.getCause();
                }
messageContext .setProperty(SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, soapFaultDetail);
                throw new AxisFault(text);
        }
-----
But if i trigger an error through an obviously wrong request, I only see the AxisFault in service logfile.

What do I have to do for sending SOAPFaults to the client?

Thanks a lot in advance!

Moritz


Reply via email to