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