axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <samisa_abeysin...@yahoo.com>
Subject RE: [exceptions] failure notice
Date Thu, 07 Oct 2004 12:02:29 GMT
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 <samisa_abeysinghe@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 <samisa_abeysinghe@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          <axis-c-user@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

Mime
View raw message