Hi Nicolas, It looks like the problem is that you are using the type "int" for the ad group ID, when the API calls for a "long": http://code.google.com/apis/adwords/docs/developer/AdService.html#getAllAds. This type mismatch is causing the method signatures not to match.
On another note, I see that you are using SOAP encoding. While this does seem to work with our services, the WSDLs specify that the literal format should be used. An example request to getAllAds using this format can be seen here: http://code.google.com/p/adwords-api-xml-samples/source/browse/trunk/src/v13/get_all_ads.xml. Finally, depending on how far along in the process you are, you may want to consider using the AdWords API Perl Client Library: http://code.google.com/p/google-api-adwords-perl/. At the very least you can take a look to see how certain features were implemented. Best, - Eric On Oct 26, 6:22 am, kolok <noud...@weborama.com> wrote: > Hi Eric > > This is an extract from my code : > > use Google::Adwords::AdService; > use SOAP::Lite +trace => [qw/ debug method fault /]; #global debug for > SOAP calls > # > # charge config for connect to web services > # > $main::_CONFIG->{root}= '' if ( !defined $main::_CONFIG->{root}); > my $rh_ad_service = Google::Adwords::AdService->new(); > my $path = $main::_CONFIG->root().'tools/google/bid_managments/'. > $ADS_PROVIDER.'-adwords.yml'; > # init $rh_ad_service with info $path, $APPLI_ENV, $CLIENT_CONNECT : > this works good > google_service_init($rh_ad_service, $path, $APPLI_ENV, > $CLIENT_CONNECT); > > # I find the adgroup id and stock it in var $adgroup_id > > my @rh_ads_response = {}; > ev...@rh_ads_response = $rh_ad_service->getAllAds( [$adgroup_id] );}; > > the request sends to Google with SOAP : > > <?xml version="1.0" encoding="UTF-8"?> > <soap:Envelope xmlns:namesp1="http://namespaces.soaplite.com/perl" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Header> > <email>em...@weborama.com</email> > <password>PASSWORD</password> > <useragent>USERAGENT</useragent> > <developerToken>DEVEL_TOKEN</developerToken> > <applicationToken>APPLI_TOKEN</applicationToken> > <clientEmail /> > <clientCustomerId>883858XXXX</clientCustomerId> > </soap:Header> > <soap:Body> > <getAllAds> > <adGroupIds soapenc:arrayType="xsd:int[1]" xsi:type="namesp1"> > <item xsi:type="xsd:int">107158XXXX</item> > </adGroupIds> > </getAllAds> > </soap:Body> > </soap:Envelope> > > Response from google : > > SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal > Server Error > Cache-Control: private, max-age=0 > Connection: close > Date: Mon, 26 Oct 2009 10:05:17 GMT > Server: GFE/2.0 > Content-Type: text/xml; charset=utf-8 > Expires: Mon, 26 Oct 2009 10:05:17 GMT > Client-Date: Mon, 26 Oct 2009 10:05:17 GMT > Client-Peer: 209.85.229.112:443 > Client-Response-Num: 1 > Client-SSL-Cert-Issuer: /C=US/O=Equifax/OU=Equifax Secure Certificate > Authority > Client-SSL-Cert-Subject: /C=US/ST=California/L=Mountain View/O=Google > Inc./CN=adwords.google.com > Client-SSL-Cipher: RC4-SHA > Client-SSL-Warning: Peer certificate not verified > Client-Transfer-Encoding: chunked > X-Content-Type-Options: nosniff > X-XSS-Protection: 0 > > <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:Header> > <responseTime soapenv:actor="http://schemas.xmlsoap.org/soap/actor/ > next" soapenv:mustUnderstand="0" xmlns="https://adwords.google.com/api/ > adwords/v13">67</responseTime> > <operations soapenv:actor="http://schemas.xmlsoap.org/soap/actor/ > next" soapenv:mustUnderstand="0" xmlns="https://adwords.google.com/api/ > adwords/v13">0</operations> > <units soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" > soapenv:mustUnderstand="0" xmlns="https://adwords.google.com/api/ > adwords/v13">0</units> > <requestId soapenv:actor="http://schemas.xmlsoap.org/soap/actor/ > next" soapenv:mustUnderstand="0" xmlns="https://adwords.google.com/api/ > adwords/v13">8136a85e38416632c81103a48fe63382</requestId> > </soapenv:Header> > <soapenv:Body> > <soapenv:Fault> > <faultcode>Server.userException</faultcode> > <faultstring>No such operation 'getAllAds'</faultstring> > <detail> > <ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">No such > operation 'getAllAds' > at org.apache.axis.message.RPCElement.deserialize(RPCElement.java: > 286) > at org.apache.axis.message.RPCElement.getParams(RPCElement.java:342) > at org.apache.axis.providers.java.RPCProvider.processMessage > (RPCProvider.java:146) > at com.google.ads.netapi.config.AdWordsApiProvider.processMessage > (AdWordsApiProvider.java:62) > at org.apache.axis.providers.java.JavaProvider.invoke > (JavaProvider.java:319) > at org.apache.axis.strategies.InvocationStrategy.visit > (InvocationStrategy.java:32) > at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) > at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) > at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java: > 450) > at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285) > at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java: > 637) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) > at org.apache.axis.transport.http.AxisServletBase.service > (AxisServletBase.java:301) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at com.google.gse.FilteredServlet$ChainEnd.doFilter > (FilteredServlet.java:172) > at com.google.inject.servlet.DefaultFilterPipeline.dispatch > (DefaultFilterPipeline.java:43) > at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java: > 110) > at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java: > 149) > at com.google.soap.base.LoggingFilter.doFilter(LoggingFilter.java: > 142) > at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java: > 149) > at > com.google.servlet.balancing.LoadBalancingFilter.processRequestLocally > (LoadBalancingFilter.java:425) > at com.google.servlet.balancing.LoadBalancingFilter.loadBalanceRequest > (LoadBalancingFilter.java:228) > at com.google.servlet.balancing.LoadBalancingFilter.doFilter > (LoadBalancingFilter.java:169) > at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java: > 149) > at com.google.gse.FilteredServlet.service(FilteredServlet.java:120) > at com.google.gse.HttpConnection.runServletFromWithinSpan > (HttpConnection.java:904) > at com.google.gse.HttpConnection.access$000(HttpConnection.java:65) > at com.google.gse.HttpConnection$1.runServletFromWithinSpan > (HttpConnection.java:832) > at com.google.gse.GSETraceHelper$TraceableServletRunnable$2.run > (GSETraceHelper.java:468) > at com.google.tracing.LocalTraceSpanRunnable.run > (LocalTraceSpanRunnable.java:56) > at com.google.tracing.LocalTraceSpanBuilder.run > (LocalTraceSpanBuilder.java:486) > at com.google.gse.GSETraceHelper > $TraceableServletRunnable.beginNewTrace(GSETraceHelper.java:412) > at com.google.gse.GSETraceHelper > $TraceableServletRunnable.runWithTracingEnabled(GSETraceHelper.java: > 359) > at com.google.gse.GSETraceHelper$TraceableServletRunnable.run > (GSETraceHelper.java:340) > at com.google.gse.HttpConnection.runServlet(HttpConnection.java:828) > at com.google.gse.HttpConnection.run(HttpConnection.java:795) > at com.google.gse.DispatchQueue$WorkerThread.run(DispatchQueue.java: > 378) > </ns1:stackTrace> > </detail> > </soapenv:Fault> > </soapenv:Body> > </soapenv:Envelope> > > The similary code to getAllCriteria or getAllAdgroups works good. I > have this problem only in production for functions getAllAds and > getActiveAds. this is really strange. > > Thank you again for your help. > Nicolas > > On Oct 23, 3:31 pm, AdWords API Advisor <adwordsapiadvi...@google.com> > wrote: > > > > > Hi Nicolas, > > > Can you post some of the code you are using and perhaps more > > information from the SOAP fault? > > > Thanks, > > - Eric Koleda, AdWords API Team > > > On Oct 22, 11:36 am, kolok <noud...@weborama.com> wrote: > > > > Hello, > > > > My name is Nicolas from France. I developed a web services software > > > which use adwords API in perl. > > > > When i use getActiveAds and getAllAds from Google::Adwords::AdService. > > > it works on the sandbox but SOAP Fault is returned when I use them in > > > production environment. > > > > The full error is : > > > Fault Code: Server.userException > > > Fault Description: No such operation 'getActiveAds' > > > > Thank you very much for your help. > > > > Best regards, > > > Nicolas --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "AdWords API Forum" group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en -~----------~----~----~----~------~----~------~--~---