[JAVA] An invalid XML character (Unicode: 0x8) was found in the element content of the document

2,175 views
Skip to first unread message

Brandon

unread,
Nov 13, 2014, 10:43:53 PM11/13/14
to adwor...@googlegroups.com
Hi,

I was trying to download some specific ads from AdWords.

Everything goes fine except one ad returned a null SOAP response.

Is there something wrong with this ad?

Error logs:

2014-11-14 11:28:39 [mvc.domain.service.adwords.impl.AdGroupAdServiceTest]-[ERROR] error
mvc.model.exception.OutOfRetryUpperboundException: Retries over 1 times and can't execute result.
at mvc.model.handler.RetryStrategy.retryDelay(RetryStrategy.java:129)
at mvc.model.handler.RetryStrategy.retry(RetryStrategy.java:101)
at mvc.model.handler.RetryStrategy.retry(RetryStrategy.java:57)
at mvc.domain.service.adwords.impl.AdGroupAdService.listByIds(AdGroupAdService.java:54)
at mvc.domain.service.adwords.impl.AdGroupAdService.listByIdsRecursive(AdGroupAdService.java:79)
at mvc.domain.service.adwords.impl.AdGroupAdServiceTest.listByAdGroupsSpecificAdGroups(AdGroupAdServiceTest.java:136)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:72)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:81)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:216)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:82)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:60)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:67)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:162)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1795; An invalid XML character (Unicode: 0x8) was found in the element content of the document.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.google.api.ads.adwords.axis.v201409.cm.AdGroupAdServiceSoapBindingStub.get(AdGroupAdServiceSoapBindingStub.java:1319)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.google.api.ads.common.lib.soap.SoapClientHandler.invoke(SoapClientHandler.java:109)
at com.google.api.ads.common.lib.soap.axis.AxisHandler.invokeSoapCall(AxisHandler.java:213)
at com.google.api.ads.common.lib.soap.SoapServiceClient.callSoapClient(SoapServiceClient.java:64)
at com.google.api.ads.common.lib.soap.SoapServiceClient.invoke(SoapServiceClient.java:93)
at com.sun.proxy.$Proxy100.get(Unknown Source)
at mvc.domain.dao.adwords.impl.AdGroupAdDao.executeQuery(AdGroupAdDao.java:37)
at mvc.domain.dao.adwords.impl.AdGroupAdDao.findByIds(AdGroupAdDao.java:64)
at mvc.domain.service.adwords.impl.AdGroupAdService.listByIds(AdGroupAdService.java:49)
at mvc.domain.service.adwords.impl.AdGroupAdService$1.call(AdGroupAdService.java:57)
at mvc.domain.service.adwords.impl.AdGroupAdService$1.call(AdGroupAdService.java:1)
at mvc.model.handler.RetryStrategy.retry(RetryStrategy.java:67)
... 33 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1795; An invalid XML character (Unicode: 0x8) was found in the element content of the document.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
... 57 more

The SOAP request:

<?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Header>
        <ns1:RequestHeader xmlns:ns1="https://adwords.google.com/api/adwords/cm/v201409" soapenv:mustUnderstand="0">
            <ns1:clientCustomerId>8843053385</ns1:clientCustomerId>
            <ns1:developerToken>DEVELOPER_TOKEN</ns1:developerToken>
            <ns1:userAgent>allproducts.com:GAD:v1.1.9 (AwApi-Java, AdWords-Axis/1.35.1, Common-Java/1.35.1, Axis/1.4, Java/1.8.0_05, maven)</ns1:userAgent>
            <ns1:validateOnly>false</ns1:validateOnly>
            <ns1:partialFailure>false</ns1:partialFailure>
        </ns1:RequestHeader>
    </soapenv:Header>
    <soapenv:Body>
            <serviceSelector>
                <fields>AdGroupId</fields>
                <fields>AdvertisingId</fields>
                <fields>Description1</fields>
                <fields>Description2</fields>
                <fields>DisplayUrl</fields>
                <fields>Headline</fields>
                <fields>Id</fields>
                <fields>TemplateAdName</fields>
                <fields>TemplateId</fields>
                <fields>Url</fields>
                <fields>Status</fields>
                <fields>AdGroupCreativeApprovalStatus</fields>
                <fields>ImageCreativeName</fields>
                <fields>MobileAdHeadline</fields>
                <fields>MobileAdDescription</fields>
                <predicates>
                    <field>Id</field>
                    <operator>IN</operator>
                    <values>53764710055</values>
                </predicates>
            </serviceSelector>
        </get>
    </soapenv:Body>
</soapenv:Envelope>


The SOAP response: null

Any idea?

Josh Radcliff (AdWords API Team)

unread,
Nov 14, 2014, 4:56:37 PM11/14/14
to adwor...@googlegroups.com
Hi,

That error means that somehow there's an embedded backspace (Unicode 0x8) in your ad. Did you create the ad via the API or from the UI?

One way you may be able to fix this is to edit the ad in the UI. However, when you do this it will actually remove the current ad and replace it with a new one, so stats after the change will appear under a new ad ID.

Thanks,
Josh, AdWords API Team

Brandon

unread,
Nov 16, 2014, 10:16:55 PM11/16/14
to adwor...@googlegroups.com
Hi Josh,

Thanks!

We create all ads from the UI.

I'm just wondering, could you trimmed it before user submit invalid context?

Brandon

Josh Radcliff (AdWords API Team)於 2014年11月15日星期六UTC+8上午5時56分37秒寫道:

Josh Radcliff (AdWords API Team)

unread,
Nov 17, 2014, 10:22:12 AM11/17/14
to adwor...@googlegroups.com
Hi Brandon,

I passed on the ad ID, etc. to the team that handles the UI to see if there was a validation step that we could add to prevent this from happening going forward. I'll post back if I hear back from them.

Thanks,
Josh, AdWords API Team
Reply all
Reply to author
Forward
0 new messages