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: failure notice
Date Thu, 07 Oct 2004 11:05:35 GMT
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"                                        
 
> > > >                                                                      
 
> > > >                                                                      
 
> > > >                                                                      
 
> > > >                                                                      
 
> > > >                                                                      
 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > I could generate the code and compile as well (on Linux).
> > > > 
> > > > However in the generated code I get the following line in
> > > > CH020XSoapPort.cpp file:
> > > >     if(AXIS_SUCCESS ==
> > > > m_pCall->checkMessage("getCustomerProfileSoapOutput",
> > > > "http://www.bt.com/css/mmbi/CH020X/"))
> > > > 
> > > > The response message has:
> > > > <ns1:getCustomerProfileResponse
> > > > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
> > > > 
> > > > Hence I guess the generated code should be:
> > > >         if(AXIS_SUCCESS ==
> > > > m_pCall->checkMessage("getCustomerProfileResponse",
> > > > "http://www.bt.com/css/mmbi/CH020X/"))
> > > > 
> > > > Possible bug in WSDL2WS tool?
> > > > 
> > > > Further it would be helpful for the exception to say which element it
could
> > > > not deserialize,
> > > > rather than just saying deserialization failure. (thus we could verify
> > > > situations like these)
> > > > 
> > > > Samisa...
> > > > 
> > > > 
> > > > 
> 
=== message truncated ===



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

Mime
View raw message