axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From krishna <kris...@lac.uic.edu>
Subject Re: axis-c-user Digest 3 Mar 2005 16:24:03 -0000 Issue 196
Date Fri, 04 Mar 2005 03:46:47 GMT
Hi Samisa

I got the service to work (partially)with google by changing the 
generated stubs to the same order as that in the Google wsdl.
The Google Service is sending me a SOAP response which I can see when i 
run tcpdump but somehow while parsing the XML it errors out with a 
segmentation fault.

Cheers
Krishna
uic.edu/~krajag2

>>>>> Hi Krishna,
>>>>>
>>>>>     Is it possible for you to capture the SOAP message sent by client
>>>>>as well as that sent by the server?
>>>>>
>>>>>Samisa...
>>>>>
>>>>>
>>>>>On Fri, 25 Feb 2005 22:11:18 -0600, krishna <krishna@lac.uic.edu>
wrote:
>>>>>          
>>>>>
>>>>>>Hi
>>>>>>
>>>>>>I am trying to develop a Simple Client for Google Search Service using
>>>>>>AXIS.I have downloaded the Google API and registered with Google.I
ran
>>>>>>the following simple program given below but it seems to error out.
>>>>>>
>>>>>>Tried using the example in the Google API and it works fine!! which
implies
>>>>>>that i am doing something wrong.Cant figure out what.
>>>>>>
>>>>>>#include <iostream>
>>>>>>#include "GoogleSearchPort.hpp"
>>>>>>
>>>>>>using namespace std;
>>>>>>
>>>>>>int main()
>>>>>>{
>>>>>>       try{
>>>>>>       GoogleSearchResult *GSR1; //to store Google Search Result
>>>>>>       GoogleSearchPort GSP1; //Google Search Port
>>>>>>       GSR1=GSP1.doGoogleSearch((axiscpp::xsd__boolean)true,
>>>>>>                               <my API key>,
>>>>>>                               "no",
>>>>>>                               1,
>>>>>>                               "utf",
>>>>>>                               (axiscpp::xsd__boolean)false,
>>>>>>                               "blank",
>>>>>>                               10,
>>>>>>                               "blank",
>>>>>>                               "UIC");
>>>>>>
>>>>>>       }catch(GoogleSearchService_AxisClientException e)
>>>>>>       {
>>>>>>               cout<<"\n This is an Exceptioncode :"<<e.getExceptionCode();
>>>>>>               cout<<"\n This is the Exception
>>>>>>:"<<e.getMessage(e.getExceptionCode());
>>>>>>               cout<<"\n e.what()"<<e.what();
>>>>>>       }
>>>>>>
>>>>>>}
>>>>>>
>>>>>>I do understand that the order of the parameters is not as per the
>>>>>>google wsdl but it is done this way because the axis client has
>>>>>>generated it in the order above.It will not affect as the names of
the
>>>>>>parameters are being sent too as it goes as XML.
>>>>>>
>>>>>>The client code which calls the doGoogleSearch function is given
>>>>>>below(generated using WSDL2ws tool in AXIS)
>>>>>>
>>>>>>GoogleSearchResult* GoogleSearchPort::doGoogleSearch(xsd__boolean
>>>>>>Value0, xsd__string Value1, xsd__string Value2, xsd__int Value3,
>>>>>>xsd__string Value4, xsd__boolean Value5, xsd__string Value6, xsd__int
>>>>>>Value7, xsd__string Value8, xsd__string Value9)
>>>>>>{
>>>>>>       GoogleSearchResult* pReturn = NULL;
>>>>>>       const char* pcCmplxFaultName;
>>>>>>       try
>>>>>>       {
>>>>>>               if (AXIS_SUCCESS !=
>>>>>>m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL))
>>>>>>                       return pReturn;
>>>>>>               m_pCall->setTransportProperty(SOAPACTION_HEADER
,
>>>>>>"urn:GoogleSearchAction");
>>>>>>               m_pCall->setSOAPVersion(SOAP_VER_1_1);
>>>>>>               m_pCall->setOperation("doGoogleSearch",
>>>>>>"urn:GoogleSearch");
>>>>>>               applyUserPreferences();
>>>>>>               m_pCall->addParameter((void*)&Value0, "filter",
>>>>>>XSD_BOOLEAN);
>>>>>>               m_pCall->addParameter((void*)&Value1, "key",
>>>>>>XSD_STRING);
>>>>>>               m_pCall->addParameter((void*)&Value2, "restrict",
>>>>>>XSD_STRING);
>>>>>>               m_pCall->addParameter((void*)&Value3, "start",
>>>>>>XSD_INT);
>>>>>>               m_pCall->addParameter((void*)&Value4, "ie",
>>>>>>XSD_STRING);
>>>>>>               m_pCall->addParameter((void*)&Value5, "safeSearch",
>>>>>>XSD_BOOLEAN);
>>>>>>               m_pCall->addParameter((void*)&Value6, "lr",
>>>>>>XSD_STRING);
>>>>>>               m_pCall->addParameter((void*)&Value7, "maxResults",
>>>>>>XSD_INT);
>>>>>>               m_pCall->addParameter((void*)&Value8, "oe",
>>>>>>XSD_STRING);
>>>>>>               m_pCall->addParameter((void*)&Value9, "q", XSD_STRING);
>>>>>>               if (AXIS_SUCCESS == m_pCall->invoke())
>>>>>>               {
>>>>>>
>>>>>>The output of the current piece of code is as follows
>>>>>>
>>>>>>This is an Exceptioncode :66
>>>>>>This is the Exception :The GoogleSearchService service has thrown
an
>>>>>>exception. see details
>>>>>>e.what()
>>>>>>
>>>>>>--
>>>>>>Krishna
>>>>>>www.uic.edu/~krajag2
>>>>>>
>>>>>>
>>>>>>            
>>>>>>



Mime
View raw message