You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by Samisa Abeysinghe <sa...@virtusa.com> on 2005/07/20 19:06:53 UTC

Re: [jira] Commented: (AXISCPP-259) WSDL faults not being deserialised

The problem is "ns1" appearing from nowhere without a value for "ns1"
namespace :-(

This is a bug that we need to fix.


Samisa...

On Wed, 2005-07-20 at 10:55, Dushshantha Chandradasa (JIRA) wrote:
>     [ http://issues.apache.org/jira/browse/AXISCPP-259?page=comments#action_12316218 ] 
> 
> Dushshantha Chandradasa commented on AXISCPP-259:
> -------------------------------------------------
> 
> I fixed the promlem of picking the wrong tag. But still i have problems. The server sends wrong xml for the fault.
> 
> <?xml version='1.0' encoding='utf-8' ?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <SOAP-ENV:Body>
> <SOAP-ENV:Fault>
> <faultcode>AxisC++ Faultcode</faultcode>
> <faultstring>Custom Out of bound exception</faultstring>
> <faultactor>server name:listen port</faultactor>
> <detail><appSpecific><DivByZeroStruct><ns1:varString>Division by zero exception</ns1:varString>
> <ns1:varInt>1</ns1:varInt>
> <ns1:varFloat>10.520000</ns1:varFloat>
> </DivByZeroStruct>
> </appSpecific></detail>
> </SOAP-ENV:Fault>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> 
> Above is the SOAP message. In that, The namespace ns1 is not defined.
> 
> > WSDL faults not being deserialised
> > ----------------------------------
> >
> >          Key: AXISCPP-259
> >          URL: http://issues.apache.org/jira/browse/AXISCPP-259
> >      Project: Axis-C++
> >         Type: Bug
> >   Components: Client - Deserialization
> >     Reporter: Andrew Perry
> >     Assignee: Dushshantha Chandradasa
> 
> >
> > The FaultMappingDoc test is not getting the expected output. The WSDL has 3 faults defined, DivByZeroStruct, OutOfBoundsStruct and SpecialDetailStruct. The test calls the MathOps service 4 times, 1 with valid values and the other 3 times to get the faults thrown. The services are hosted on WebSphere rather than the Axis Server, but from the response message you can see that the correct faults are being thrown. The first call works, the second to get a DivByZeroStruct fault sort of works in that a MathOpsService Exception is thrown but none of the fault detail is shown, but the final 2 requests which should also have MathOpsService exceptions get an unspecified exception in that 'catch(...)' catches it rather than either MathOpsService_AxisClientException or AxisException.
> > Client output
> > loop 0
> > trying to div 10 and 5
> > Result is 2
> > loop 1
> > trying to div 10 and 0
> > MathOpsService Exception: AxisTransportException:HTTP transport error Internal Server Error
> > loop 2
> > trying to div 1000 and 5
> > Unspecified Exception:
> > loop 3
> > trying to div 10 and -5
> > Unspecified Exception:
> > on-the-wire response
> > --------------------
> > HTTP/1.1 200 OK^M
> > Server: WebSphere Application Server/5.1^M
> > Content-Type: text/xml; charset=utf-8^M
> > Content-Language: en-GB^M
> > Transfer-Encoding: chunked^M
> > ^M
> > 197^M
> > <?xml version="1.0" encoding="UTF-8"?>
> > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><divResponse xmlns="http://soapinterop.org/wsdl"><divReturn>2</divReturn></divResponse></soapenv:Body></soapenv:Envelope>^M
> > 0^M
> > ^M
> > HTTP/1.1 500 Internal Server Error^M
> > Server: WebSphere Application Server/5.1^M
> > Content-Type: text/xml; charset=utf-8^M
> > Content-Language: en-GB^M
> > Transfer-Encoding: chunked^M
> > ^M
> > 2fb^M
> > <?xml version="1.0" encoding="UTF-8"?>
> > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns:ns2008922717="http://soapinterop.org/wsdl" xmlns="">ns2008922717:DivByZeroStruct</faultcode><faultstring xmlns=""><![CDATA[org.soapinterop.DivByZeroStruct]]></faultstring><detail xmlns=""><DivByZeroStruct xmlns="http://soapinterop.org/wsdl"><varString>Division by zero exception</varString><varInt>1</varInt><varFloat>10.52</varFloat></DivByZeroStruct></detail></Fault></soapenv:Body></soapenv:Envelope>^M
> > 0^M
> > ^M
> > HTTP/1.1 500 Internal Server Error^M
> > Server: WebSphere Application Server/5.1^M
> > Content-Type: text/xml; charset=utf-8^M
> > Content-Language: en-GB^M
> > Transfer-Encoding: chunked^M
> > ^M
> > 31a^M
> > <?xml version="1.0" encoding="UTF-8"?>
> > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns:ns2008922717="http://soapinterop.org/wsdl" xmlns="">ns2008922717:SpecialDetailStruct</faultcode><faultstring xmlns=""><![CDATA[org.soapinterop.SpecialDetailStruct]]></faultstring><detail xmlns=""><SpecialDetailStruct xmlns="http://soapinterop.org/wsdl"><varString>You have entered 1000 for the first parameter. 1000 is reserved. Please do not use it</varString></SpecialDetailStruct></detail></Fault></soapenv:Body></soapenv:Envelope>^M
> > 0^M
> > ^M
> > -----------------------------
> > Is it possible to get the soap fault detail?
> > Why do the last 2 faults not get caught by the Axis Exceptions?
-- 
Samisa Abeysinghe <sa...@virtusa.com>
Virtusa Corporation