in reply to Re: Setting up Google AdWords API v200909 - compilation error
in thread Setting up Google AdWords API v200909 - compilation error

Thank you for the quick reply.

According to the Google README doc, the deserialization does not occur in SOAP::Lite:

The backbone of the client library is a modified version of SOAP::WSDL. It handles the serialization/deserialization, transport, and creating classes for the objects defined in the AdWords API WSDLs. SOAP::WSDL, in turn, uses SOAP::Lite under the hood for some operations.

Later on the the README, in the "Step-by-step guide for getting started:" section it states:

4) This client library relies on a development version of the SOAP::WSDL module, and also relies on patches to that module. You download the version of SOAP::WSDL available at
http://soap-wsdl.svn.sourceforge.net/viewvc/soap-wsdl/SOAP-WSDL/branches/Typemap.tar.gz?view=tar&pathrev=846
and expand the gzip and tar archive. Once that's done, run the soap_wsdl_patches.pl script on the expanded Typemap directory like so:
bin/soap_wsdl_patches.pl /path/to/downloaded/Typemap

5) Install the patched SOAP::WSDL following the directions in its README.

I have followed all of these steps with the exception that I downloaded a later version of the SOAP::WSDL module.

I took a look and there is indeed a /SOAP/WSDL/Deserializer directory with the following modules in it:

FYI I tried your BEGIN { push @ISA, "SOAP::Deserializer"; } fix and got the following error:

Global symbol "@ISA" requires explicit package name at /usr/lib/perl5/ +site_perl/5.8.8/Google/AdWords/Deserializer.pm line 25. BEGIN not safe after errors--compilation aborted at /usr/lib/perl5/sit +e_perl/5.8.8/Google/AdWords/Deserializer.pm line 25. Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Google +/AdWords/Client.pm line 26. BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Go +ogle/AdWords/Client.pm line 26. Compilation failed in require at display_stats.pl line 24.

Replies are listed 'Best First'.
Re^3: Setting up Google AdWords API v200909 - compilation error
by almut (Canon) on Jun 01, 2010 at 19:07 UTC
    According to the Google README doc, the deserialization does not occur in SOAP::Lite:

    It doesn't really matter where the deserialization actually occurs...  Google/AdWords/Deserializer.pm loads SOAP::Lite and tries to set up an inheritance relationship with SOAP::Deserializer. And that's the line where the error occurs...


    FYI I tried your BEGIN { push @ISA, "SOAP::Deserializer"; } fix and got the following error ...

    Sorry, my fault. That should've been BEGIN { our @ISA = ... (as I've updated my node in the meatime).

      That solved the compilation issue.

      Thank you very much.