axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From S Balaji <ija...@yahoo.com>
Subject Re: axis cpp client - exception handling and showing correct message ?
Date Thu, 19 Feb 2009 23:47:10 GMT


Thanks Nadir. 

Sorry but I am unable to find the correct links to download : I started from : http://ws.apache.org/axis/cpp/index.html
- in this link, under "Axis(C++)" on the left, there is a "download" link which takes me to
http://ws.apache.org/axis/cpp/download.html. All the drops here (binaries and source) are
from Mar 2006. Nothing newer.

On another note, if you go to http://ws.apache.org/axis/cpp/index.html, on the left hand side,
the "Releases" and "Source Code" link on the left (just above the "Translation" part on the
bottom left of the page, are broken. 

Thanks.

- B

--- On Thu, 2/19/09, Nadir Amra <amra@us.ibm.com> wrote:

> From: Nadir Amra <amra@us.ibm.com>
> Subject: Re: axis cpp client - exception handling and showing correct message ?
> To: "Apache AXIS C User List" <axis-c-user@ws.apache.org>
> Cc: axis-c-user@ws.apache.org
> Date: Thursday, February 19, 2009, 4:57 PM
> I would suggest you download the latest code from SVN, build
> it, and try 
> that instead of using binaries - the
> axis-c-1.6b-Win32-trace-bin binaries 
> are very, very, old and are buggy. 
> 
> Hopefully, a 1.6 version will be released.  Do not know
> when yet. 
> 
> Nadir Amra
> 
> 
> S Balaji <ijalab@yahoo.com> wrote on 02/19/2009
> 12:10:34 PM:
> 
> > [image removed] 
> > 
> > axis cpp client - exception handling and showing
> correct message ?
> > 
> > S Balaji 
> > 
> > to:
> > 
> > axis-c-user
> > 
> > 02/19/2009 12:13 PM
> > 
> > Please respond to "Apache AXIS C User List"
> > 
> > 
> > 
> > 
> > Hi All, 
> > 
> > Question : How do I do the exception handling in axis
> cpp client so 
> > that correct relevant message is printed out ? 
> > 
> > Detailed description below : 
> > 
> > I am new to Web services. I have a requirement to
> write C++ client 
> > to call a customer's web services. My client code
> has to run on many
> > platforms : Win32, AIX, Solaris, HP-Itanium, Linux. I
> am playing 
> > with both gSoap and Axis C++ client versions on
> Windows first. 
> > 
> > I am using axis-c-1.6b-Win32-trace-bin binaries on
> Windows 2000 
> > Advanced Server (my laptop). 
> > 
> > My customer's web service is written in Axis for
> Java. 
> > 
> > First I tried simple examples, and they are working
> fine : 
> > Calculator, hello world etc. 
> > 
> > But when I try calling my customer's web service
> (real life) example
> > with axis client as well as with gSoap client, I am
> unable to get 
> > the actual exception string. 
> > 
> > Question : How do I do the correct exception handling
> so that 
> > correct relevant message is printed out ? 
> > 
> > Bacause I am sending invalid business data, I get HTTP
> 500. But as 
> > you can see in the return HTTP message below, the
> business exception
> > / fault string is "TruckID EXAMPLE-5 cannot be
> found" but instead I 
> > get "Cannot deserialize" with Axis and
> "HTTP 500 error" with gSOap.
> > 
> > This post is only regarding Axis, so I am not
> expecting any replies 
> > regarding gSOap.
> > 
> > Below, I have used MacDonalds as an example. They are
> not my customer :) 
> 
> > 
> > Thanks a LOT in advance !!
> > 
> > Below is my client code :
> ------------------------------------
> > 
> > try
> > {
> >        CustomerService service;
> >        allocSvcObj.setUsername("username");
> >        allocSvcObj.setPassword("password");
> >        TruckObject * createdTruckId =
> service.callCustomerMethod( 
> > "EXAMPLE-5","BBB" );
> > } 
> > catch(AxisException& e)
> > {
> >        printf("Exception : %s\n",
> e.what());
> > }
> > 
> > I also tried : 
> > catch( SoapFaultException & e)
> > { 
> >        const char *excpCode = e.getFaultCode();
> >        const char *excpMessage = e.getFaultString();
> >        printf("Got Soap Fault : code : [%d],
> message : [%s]\n", 
> > excpCode, excpMessage); 
> > }
> > catch( AxisException& e)
> > { 
> >        int iExceptionCode = e.getExceptionCode();
> >        const char *excpMessage = e.getMessage();
> >        printf("Got axis exception : code : [%d],
> message : [%s]\n", 
> > iExceptionCode, excpMessage); 
> > }
> > 
> > 
> > 
> > Below is my client run result :
> ------------------------------------
> > 
> > Exception : Cannot deserialize the requested element
> > if I print e.exceptionCode(), I get 72. 
> > 
> > Below is what the customer's http server returned
> : 
> > ------------------------------------
> > 
> > 
> > HTTP/1.1 500 Internal Server Error
> > Server: Apache-Coyote/1.1
> > Set-Cookie:
> JSESSIONID=EE7CCB1E9C3F32E1E340387CEFB3C39C; Path=/dm
> > Content-Type: text/xml;charset=utf-8
> > Transfer-Encoding: chunked
> > Date: Thu, 19 Feb 2009 14:35:29 GMT
> > Connection: close
> > 
> > 291
> > <?xml version="1.0"
> encoding="UTF-8"?><soapenv:Envelope
> xmlns:soapenv="
> > http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://
> > www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/
> > XMLSchema-instance
> > 
> "><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.generalException</
> > faultcode><faultstring>E20010 TruckID
> EXAMPLE-5 cannot be found 
> > [R00007]; nested exception is: 
> >
> com.MacDonalds.common.exceptions.RecordDeletedException:
> E20010 
> > TruckID EXAMPLE-5 cannot be found [R00007]</
> > faultstring><detail><ns1:hostname
> xmlns:ns1="http://xml.apache.org/axis/
> >
> ">mp-srv-lin02</ns1:hostname></detail></soapenv:Fault></
> > soapenv:Body></soapenv:Envelope>
> > 
> > 
> > 
> >


      

Mime
View raw message