You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by Samisa Abeysinghe <sa...@yahoo.com> on 2004/10/07 14:02:29 UTC

RE: [exceptions] failure notice

In the earlier case it check the message for "getCustomerProfileSoapOutput" and threw a "Cannot
deserialize excaption".

However, in case of "mmbiOutput" it does not check the message, and return a NULL object, instead
of thowing a "Cannot deserialize excaption" where it really has failed to deserialize. 

Clearly the errors shown to the user, in these two occations, for the same error, are not
consistant and hence it is difficult to troubleshoot.

I guess this too is something to be fixed. 

Samisa...


--- Samisa Abeysinghe <sa...@yahoo.com> wrote:

> Yes I was correct :(
> The generated code in getCustomerProfileResponse.cpp reads:
> param->mmbi = (mmbiOutput*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_mmbiOutput
>                 , (void*)Axis_Create_mmbiOutput, (void*)Axis_Delete_mmbiOutput
>                 , "mmbiOutput", Axis_URI_mmbiOutput);
> 
> However the response reads:
>
<mmbi><object>CH020X</object><method>getCustomerProfile</method><objectVer>90</objectVer><compileDate>16/04/03</compileDate><compilerVer>V4.00</compilerVer><mmbiVer>6</mmbiVer><sysText>CSS
> R82</sysText><location>LW</location><correlId>adrian</correlId><status>OK</status></mmbi>
> 
> Hence the generated code in getCustomerProfileResponse.cpp should have been:
> param->mmbi = (mmbiOutput*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_mmbiOutput
>                 , (void*)Axis_Create_mmbiOutput, (void*)Axis_Delete_mmbiOutput
>                 , "mmbi", Axis_URI_mmbiOutput);
> 
> Hope this helps to fix the problem.
> 
> I am not exactly sure what is going wrong with WSDL2WS tool :(
> 
> Samisa...
> 
> 
> 
> --- Samisa Abeysinghe <sa...@yahoo.com> wrote:
> 
> > This means that the client still fails during deserialization.
> > There could be more places that the generated code has got m_pCall->checkMessage() stuff wrong
> > :(
> > 
> > Samisa...
> > 
> > --- adrian.p.smith@bt.com wrote:
> > 
> > > OK, so I was getting a 'NullPoinerException'.
> > > 
> > > So now it seems that the 'result' is not getting initialised.
> > > 
> > > Any ideas?
> > > 
> > > -----Original Message-----
> > > From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
> > > Sent: 07 October 2004 09:19
> > > To: Apache AXIS C User List
> > > Subject: RE: failure notice
> > > 
> > > 
> > > 1. So it is clear that there is something wrong with the generated code.
> > > 
> > > 2. The object attribute non-initilization is a know problem. (I think there is a Jira issue
> on
> > > this) - We got to fix this.
> > > 
> > > 3. I do not see anything wrong with 
> > > printf("result = %s\n", result->telNr);
> > > However, in order to veryfy that you have a not NULL result you could use:
> > > if (result)
> > >    printf("result = %s\n", result->telNr);
> > > else
> > >    printf("result is NULL\n");
> > > 
> > > Thanks,
> > > Samisa...
> > > 
> > > --- adrian.p.smith@bt.com wrote:
> > > 
> > > > OK.
> > > > 
> > > > 1. I've edited the CH020XSoapPort.cpp file as suggested and, to stop the offending <pck>
> > being
> > > > returned, I have omitted it from the input. This seems to have highlighted a further
> issue.
> > > When
> > > > a complexType is sent in the request, if all the elements are left un-initialized, the
> SOAP
> > > > payload has some wierd characters in the first element of the complex type. Output from
> YATT
> > > > shows this:
> > > > 
> > > > <?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><ns1:getCustomerProfile
> > > > xmlns:ns1="http://www.bt.com/css/mmbi/CH020X/"><mmbiInput xsi:type="ns2:mmbiInput"
> > > > xmlns:ns2="http://www.bt.com/css/mmbi/2002/06/types"><correlId
> > > > xsi:type="xsd:string">�G1</correlId><trace xsi:nil="true"/><location
> > > > xsi:nil="true"/></mmbiInput><E2E xsi:type="ns2:E2E"
> > > > xmlns:ns2="http://www.bt.com/css/mmbi/2002/06/types"><pck
> > > > xsi:type="xsd:string">�G1</pck><callerId xsi:nil="true"/></E2E><telNr
> > > >
> > >
> >
>
xsi:type="xsd:string">01208561489</telNr></ns1:getCustomerProfile></SOAP-ENV:Body></SOAP-ENV:Envelope>
> > > > 
> > > > notice the �G1 in <correlId> and <pck>. Subsequent elements in the complexType are
> correctly
> > > > sent as xsi:nil="true". This causes a servlet error on the server side that results in a
> > > > SOAP:Fault being returned, so we don't get to check out the de-serialisation. Is this
> > another
> > > > bug?
> > > > 
> > > > 2. I then amended the input pck to not have the < character and I got another "Unknown
> > > > Exception". I believe the client is now deserialising the response as I see the
> > > > printf("returned\n");. Is there something wrong with:
> > > > 
> > > >         printf("result = %s\n", result->telNr);
> > > > 
> > > > Sorry my C/C++ is a bit weak...
> > > > 
> > > > My client code is:
> > > > 
> > > > #include "CH020XSoapPort.h"
> > > > int main()
> > > > {
> > > >     try
> > > >     {
> > > >         CH020XSoapPort *port = new CH020XSoapPort();
> > > >         
> > > >         mmbiInput *mmbiIn = new mmbiInput();
> > > >         mmbiIn->correlId = "adrian";
> > > >         E2E *e2e = new E2E();
> > > >         e2e->pck = "PCK002069bt.com SS01   ND1234567890200107190000223344dyemw01
> im011111";
> > > >         
> > > >         getCustomerProfileResponse *result = port->getCustomerProfile(mmbiIn, e2e,
> > > > "01208561489");
> > > >         printf("returned\n");
> > > >         printf("result = %s\n", result->telNr);
> > > >         return 0;
> > > >     }
> > > >     catch(AxisException &e)
> > > >     {
> > > >         printf("Exception : %s\n", e.what());
> > > >         printf("Exception : %d\n", e.getExceptionCode());
> > > >         return 1;
> > > >     }
> > > >     catch(exception &e)
> > > >     {
> > > >         printf("Unknown exception 1 has occured\n" );
> > > >         return 1;
> > > >     }
> > > > 	catch(...)
> > > >     {
> > > >         printf("Unknown exception has occured\n" );
> > > >         return 1;
> > > >     }
> > > > }
> > > > 
> > > > Regards,
> > > > 
> > > > Adrian Smith
> > > > BT Group
> > > > 
> > > > 
> > > > 
> > > > 
> > > > -----Original Message-----
> > > > From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
> > > > Sent: 07 October 2004 03:27
> > > > To: Apache AXIS C Developers List
> > > > Cc: axis-c-user@ws.apache.org
> > > > Subject: RE: failure notice
> > > > 
> > > > 
> > > > Yes I think it is a WSDL2Ws defect.
> > > > However, only way to verify this is to change "getCustomerProfileSoapOutput" to
> > > > "getCustomerProfileResponse" in the gerated code manually and test. 
> > > > 
> > > > Additionally the response contains a '<' within string values received in the response.
> > > > "<pck>PCK&lt;01069bt.com SS01   ND1234567890200107190000223344dyemw01im011111</pck>"
> > > > It is a known bug that Axis C++ cannot handel '<' and '>' characters in strings received.
> > > > 
> > > > Samisa...
> > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > This is the last I saw on this - is this a WSDL2ws defect then?
> > > > > 
> > > > > 
> > > > > John Hawkins
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > >                                                                        
> > > > >              Samisa Abeysinghe                                         
> > > > >              <samisa_abeysingh                                         
> > > > >              e@yahoo.com>                                               To
> > > > >                                        Apache AXIS C User List         
> > > > >              05/10/2004 04:55          <ax...@ws.apache.org>     
> > > > >                                                                         cc
> > > > >                                        axis-c-dev@ws.apache.org        
> > > > >              Please respond to                                     Subject
> > > > >               "Apache AXIS C           RE: failure notice              
> > > > >              Developers List"                                          
> > > > >                                                                        
> > > > >                                                                        
> > > > >                                                                        
> > > > >                                                                        
> 
=== message truncated ===



		
_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com

RE: [exceptions] failure notice

Posted by John Hawkins <HA...@uk.ibm.com>.



If these are the "major" issues we are going to fix in the next few days
before we are happy with our 1.3 release than can you track them via a JIRA
issue please Samisa?


John Hawkins




                                                                           
             Samisa Abeysinghe                                             
             <samisa_abeysingh                                             
             e@yahoo.com>                                               To 
                                       Apache AXIS C User List             
             07/10/2004 13:02          <ax...@ws.apache.org>         
                                                                        cc 
                                                                           
             Please respond to                                     Subject 
              "Apache AXIS C           RE: [exceptions] failure notice     
                User List"                                                 
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




In the earlier case it check the message for "getCustomerProfileSoapOutput"
and threw a "Cannot
deserialize excaption".

However, in case of "mmbiOutput" it does not check the message, and return
a NULL object, instead
of thowing a "Cannot deserialize excaption" where it really has failed to
deserialize.

Clearly the errors shown to the user, in these two occations, for the same
error, are not
consistant and hence it is difficult to troubleshoot.

I guess this too is something to be fixed.

Samisa...


--- Samisa Abeysinghe <sa...@yahoo.com> wrote:

> Yes I was correct :(
> The generated code in getCustomerProfileResponse.cpp reads:
> param->mmbi =
(mmbiOutput*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_mmbiOutput
>                 , (void*)Axis_Create_mmbiOutput,
(void*)Axis_Delete_mmbiOutput
>                 , "mmbiOutput", Axis_URI_mmbiOutput);
>
> However the response reads:
>
<mmbi><object>CH020X</object><method>getCustomerProfile</method><objectVer>90</objectVer><compileDate>16/04/03</compileDate><compilerVer>V4.00</compilerVer><mmbiVer>6</mmbiVer><sysText>CSS

>
R82</sysText><location>LW</location><correlId>adrian</correlId><status>OK</status></mmbi>

>
> Hence the generated code in getCustomerProfileResponse.cpp should have
been:
> param->mmbi =
(mmbiOutput*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_mmbiOutput
>                 , (void*)Axis_Create_mmbiOutput,
(void*)Axis_Delete_mmbiOutput
>                 , "mmbi", Axis_URI_mmbiOutput);
>
> Hope this helps to fix the problem.
>
> I am not exactly sure what is going wrong with WSDL2WS tool :(
>
> Samisa...
>
>
>
> --- Samisa Abeysinghe <sa...@yahoo.com> wrote:
>
> > This means that the client still fails during deserialization.
> > There could be more places that the generated code has got
m_pCall->checkMessage() stuff wrong
> > :(
> >
> > Samisa...
> >
> > --- adrian.p.smith@bt.com wrote:
> >
> > > OK, so I was getting a 'NullPoinerException'.
> > >
> > > So now it seems that the 'result' is not getting initialised.
> > >
> > > Any ideas?
> > >
> > > -----Original Message-----
> > > From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
> > > Sent: 07 October 2004 09:19
> > > To: Apache AXIS C User List
> > > Subject: RE: failure notice
> > >
> > >
> > > 1. So it is clear that there is something wrong with the generated
code.
> > >
> > > 2. The object attribute non-initilization is a know problem. (I think
there is a Jira issue
> on
> > > this) - We got to fix this.
> > >
> > > 3. I do not see anything wrong with
> > > printf("result = %s\n", result->telNr);
> > > However, in order to veryfy that you have a not NULL result you could
use:
> > > if (result)
> > >    printf("result = %s\n", result->telNr);
> > > else
> > >    printf("result is NULL\n");
> > >
> > > Thanks,
> > > Samisa...
> > >
> > > --- adrian.p.smith@bt.com wrote:
> > >
> > > > OK.
> > > >
> > > > 1. I've edited the CH020XSoapPort.cpp file as suggested and, to
stop the offending <pck>
> > being
> > > > returned, I have omitted it from the input. This seems to have
highlighted a further
> issue.
> > > When
> > > > a complexType is sent in the request, if all the elements are left
un-initialized, the
> SOAP
> > > > payload has some wierd characters in the first element of the
complex type. Output from
> YATT
> > > > shows this:
> > > >
> > > > <?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><ns1:getCustomerProfile
> > > > xmlns:ns1="http://www.bt.com/css/mmbi/CH020X/"><mmbiInput
xsi:type="ns2:mmbiInput"
> > > > xmlns:ns2="http://www.bt.com/css/mmbi/2002/06/types"><correlId
> > > > xsi:type="xsd:string">°G1</correlId><trace
xsi:nil="true"/><location
> > > > xsi:nil="true"/></mmbiInput><E2E xsi:type="ns2:E2E"
> > > > xmlns:ns2="http://www.bt.com/css/mmbi/2002/06/types"><pck
> > > > xsi:type="xsd:string">°G1</pck><callerId
xsi:nil="true"/></E2E><telNr
> > > >
> > >
> >
>
xsi:type="xsd:string">01208561489</telNr></ns1:getCustomerProfile></SOAP-ENV:Body></SOAP-ENV:Envelope>

> > > >
> > > > notice the °G1 in <correlId> and <pck>. Subsequent elements in the
complexType are
> correctly
> > > > sent as xsi:nil="true". This causes a servlet error on the server
side that results in a
> > > > SOAP:Fault being returned, so we don't get to check out the
de-serialisation. Is this
> > another
> > > > bug?
> > > >
> > > > 2. I then amended the input pck to not have the < character and I
got another "Unknown
> > > > Exception". I believe the client is now deserialising the response
as I see the
> > > > printf("returned\n");. Is there something wrong with:
> > > >
> > > >         printf("result = %s\n", result->telNr);
> > > >
> > > > Sorry my C/C++ is a bit weak...
> > > >
> > > > My client code is:
> > > >
> > > > #include "CH020XSoapPort.h"
> > > > int main()
> > > > {
> > > >     try
> > > >     {
> > > >         CH020XSoapPort *port = new CH020XSoapPort();
> > > >
> > > >         mmbiInput *mmbiIn = new mmbiInput();
> > > >         mmbiIn->correlId = "adrian";
> > > >         E2E *e2e = new E2E();
> > > >         e2e->pck = "PCK002069bt.com SS01
ND1234567890200107190000223344dyemw01
> im011111";
> > > >
> > > >         getCustomerProfileResponse *result =
port->getCustomerProfile(mmbiIn, e2e,
> > > > "01208561489");
> > > >         printf("returned\n");
> > > >         printf("result = %s\n", result->telNr);
> > > >         return 0;
> > > >     }
> > > >     catch(AxisException &e)
> > > >     {
> > > >         printf("Exception : %s\n", e.what());
> > > >         printf("Exception : %d\n", e.getExceptionCode());
> > > >         return 1;
> > > >     }
> > > >     catch(exception &e)
> > > >     {
> > > >         printf("Unknown exception 1 has occured\n" );
> > > >         return 1;
> > > >     }
> > > >            catch(...)
> > > >     {
> > > >         printf("Unknown exception has occured\n" );
> > > >         return 1;
> > > >     }
> > > > }
> > > >
> > > > Regards,
> > > >
> > > > Adrian Smith
> > > > BT Group
> > > >
> > > >
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
> > > > Sent: 07 October 2004 03:27
> > > > To: Apache AXIS C Developers List
> > > > Cc: axis-c-user@ws.apache.org
> > > > Subject: RE: failure notice
> > > >
> > > >
> > > > Yes I think it is a WSDL2Ws defect.
> > > > However, only way to verify this is to change
"getCustomerProfileSoapOutput" to
> > > > "getCustomerProfileResponse" in the gerated code manually and test.

> > > >
> > > > Additionally the response contains a '<' within string values
received in the response.
> > > > "<pck>PCK&lt;01069bt.com SS01
ND1234567890200107190000223344dyemw01im011111</pck>"
> > > > It is a known bug that Axis C++ cannot handel '<' and '>'
characters in strings received.
> > > >
> > > > Samisa...
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > This is the last I saw on this - is this a WSDL2ws defect then?
> > > > >
> > > > >
> > > > > John Hawkins
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >

> > > > >              Samisa Abeysinghe

> > > > >              <samisa_abeysingh

> > > > >              e@yahoo.com>
To
> > > > >                                        Apache AXIS C User List

> > > > >              05/10/2004 04:55
<ax...@ws.apache.org>
> > > > >
cc
> > > > >                                        axis-c-dev@ws.apache.org

> > > > >              Please respond to
Subject
> > > > >               "Apache AXIS C           RE: failure notice

> > > > >              Developers List"

> > > > >

> > > > >

> > > > >

> > > > >

>
=== message truncated ===




_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com