4 messages in com.googlegroups.adwords-apiaddCriteria results in Abstract keyVa...
FromSent OnAttachments
Chris Roos25 Sep 2006 04:43 
Chris Roos26 Sep 2006 01:47 
Chris Roos26 Sep 2006 06:12 
Patrick Chanezon27 Sep 2006 08:40 
Subject:addCriteria results in Abstract keyValue without superclass error
From:Chris Roos (chri@gmail.com)
Date:09/25/2006 04:43:44 AM
List:com.googlegroups.adwords-api

Using adwords4r against the sandbox.

I use getAdGroup to ensure that I have access to the AdGroup that I am trying to attach a keyword to (id 2597). This succeeds.

I then use the following code...

--code--

keyword = AdWords::Keyword.new keyword.text = 'text' keyword.adGroupId = 2597 keyword.maxCpc = 1000

p adwords.addCriteria([keyword])

--/code--

which results in the following xml (this is just the body).

--soap--

<env:Body> <addCriteria xmlns="https://adwords.google.com/api/adwords/v5"> <newCriteria> <adGroupId>2597</adGroupId> <maxCpc>1000</maxCpc> <text>text</text> </newCriteria> </addCriteria> </env:Body>

--/soap--

The error I get back is

--soap--

<soapenv:Fault> <faultcode>soapenv:Server.userException</faultcode>

<faultstring>java.lang.RuntimeException: Abstract keyValue without superclass.</faultstring>

<detail> <ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">java.lang.RuntimeException: Abstract keyValue without superclass. at
com.google.soap.base.PolymorphicBeanDeserializer.startElement(PolymorphicBeanDeserializer.java:70) at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1038) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159) at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1138) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:199) 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:48) 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:124) at com.google.soap.base.LoggingFilter.doFilter(LoggingFilter.java:136) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:102) at
com.google.servlet.balancing.LoadBalancingFilter.doFilter(LoadBalancingFilter.java:167) at com.google.gse.FilteredServlet$Chain.doFilter(FilteredServlet.java:102) at com.google.gse.FilteredServlet.service(FilteredServlet.java:82) at com.google.gse.HttpConnection.runServlet(HttpConnection.java:469) at com.google.gse.HttpConnection.run(HttpConnection.java:397) at com.google.gse.DispatchQueue$WorkerThread.run(DispatchQueue.java:266) </ns1:stackTrace>

<ns2:isRuntimeException xmlns:ns2="http://xml.apache.org/axis/">true</ns2:isRuntimeException>

</detail>

</soapenv:Fault>

--/soap--

Does anyone have any ideas?

Cheers,

Chris