Hi Krishna,
    It would be helpfult to fix this problem if you could send the
SOAP message and the generated code that you are using.

Thanks,
Samisa,,,


On Thu, 03 Mar 2005 21:46:47 -0600, krishna <[EMAIL PROTECTED]> wrote:
> 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 <[EMAIL PROTECTED]> 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
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> 
>

Reply via email to