You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Eran Chinthaka (JIRA)" <ji...@apache.org> on 2006/04/02 20:00:44 UTC

[jira] Resolved: (AXIS2-496) wrong SOAPFault (faultstring, faultcode touched) serialized

     [ http://issues.apache.org/jira/browse/AXIS2-496?page=all ]
     
Eran Chinthaka resolved AXIS2-496:
----------------------------------

    Fix Version: 0.96
     Resolution: Fixed
      Assign To: Eran Chinthaka

> wrong SOAPFault (faultstring, faultcode touched) serialized
> -----------------------------------------------------------
>
>          Key: AXIS2-496
>          URL: http://issues.apache.org/jira/browse/AXIS2-496
>      Project: Apache Axis 2.0 (Axis2)
>         Type: Bug

>     Versions: 0.95
>     Reporter: Yves Langisch
>     Assignee: Eran Chinthaka
>     Priority: Critical
>      Fix For: 0.96

>
> Following code (provided by Eran) produces a wrong exception: 
> <code>
> MessageContext messageContext = null; // you must have to the current message context, when you are throwing the fault
>          Exception t = new Exception("Eureka, Says Archimedes and runs naked on the road");
>          SOAPFactory soapFactory = OMAbstractFactory.getSOAP11Factory();
>          SOAPFaultCode soapFaultCode =
>  soapFactory.createSOAPFaultCode();
>          soapFaultCode.declareNamespace("http://someuri.org", "m");
>          SOAPFaultValue soapFaultValue =
>  soapFactory.createSOAPFaultValue(soapFaultCode);
>          soapFaultValue.setText("m:FaultException");
>  
>  messageContext.setProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME,
>  soapFaultCode);
>  
>          SOAPFaultReason soapFaultReason =
>  soapFactory.createSOAPFaultReason();
>          SOAPFaultText soapFaultText =
>  soapFactory.createSOAPFaultText(soapFaultReason);
>          soapFaultText.setText("This is some fault reason");
>  
>  messageContext.setProperty(SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME, soapFaultReason);
>          
>          SOAPFaultDetail soapFaultDetail =
>  soapFactory.createSOAPFaultDetail();
>          QName qName = new QName("http://someuri.org",
>  "FaultException");
>          OMElement detail = soapFactory.createOMElement(qName, null);
>          qName = new QName("http://someuri.org", "ExceptionMessage");
>          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("Something unusual is happening !!!");
> </code>
> gives (from Tony Dean's mail):
> <?xml version="1.0" encoding="UTF-8" ?> 
> > - <soapenv:Envelope
> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> >   <soapenv:Header /> 
> > - <soapenv:Body>
> > - <soapenv:Fault>
> >   <faultcode
> > xmlns:fault="http://support.sas.com/xml/namespace/biwebservices/webservicemaker-9.2">fault:FaultExceptionClient</faultcode> 
> > 
> > <faultstring>com.sas.web.services.maker.FaultExceptionunknown</faultstring> 
> >   <faultactor>http://myAxisServer/role/default</faultactor> 
> > - <detail>
> > - <FaultException
> > xmlns="http://support.sas.com/xml/namespace/biwebservices/webservicemaker-9.2">
> >   <ExceptionMessage>Service "myService1234" already
> > exists.</ExceptionMessage> 
> >   </FaultException>
> >   </detail>
> >   </soapenv:Fault>
> >   </soapenv:Body>
> >   </soapenv:Envelope>
> Notice the "Cient" text concatentated on the end of "fault:FaultException" in the faultcode.  "Client" is your default faultcode. Likewise, notice the "unknown" text concatenated on the end of
>  "com.sas.web.services.maker.FaultException".

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira