Проблема с API GData при использовании метода «DocumentListEntry.updateMedia ()» - PullRequest
1 голос
/ 04 октября 2011

Я использую метод updateMedia (логический) DocumentListEntry из GData API.Иногда эта команда работала, но в большинстве случаев выдается исключение.

Код (documentList является объектом DocumentListEntry):

public void flush() throws IOException {
    try {
        if(((ByteArrayOutputStream)os).size()>0){
            documentList.setMediaSource(
                    new MediaByteArraySource(((ByteArrayOutputStream)os).toByteArray(), mimeType));
            documentList.updateMedia(true);
            ((ByteArrayOutputStream)os).reset();
        }
    } catch (ServiceException ex) {
        throw new IOException(ex);
    }
}

Команда "documentList.updateMedia (true);"брось вот это исключение:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
        at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:162)
        at com.ralph.agente.Agent.run(Agent.java:191)
        at com.ralph.agente.Agent.run(Agent.java:134)
        at company.google.conexao.RecebeObjetoThread.geraSinaisVitaisAgent(RecebeObjetoThread.java:61)
        at company.google.conexao.RecebeObjetoThread.run(RecebeObjetoThread.java:133)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: com.google.gdata.util.InvalidEntryException: Unexpected resource version ID
<errors xmlns='http://schemas.google.com/g/2005'><error><domain>GData</domain><code>invalidResourceVersion</code><internalReason>Unexpected resource version ID</internalReason></error></errors>

        at com.company.google.io.GoogleDocsOutputStream.flush(GoogleDocsOutputStream.java:142)
        at com.company.google.io.GoogleDocsOutputStream.close(GoogleDocsOutputStream.java:148)
        at br.edu.company.google.processo.GeraSinaisVitaisAgent.bodyAgent(GeraSinaisVitaisAgent.java:133)
        ... 11 more
Caused by: com.google.gdata.util.InvalidEntryException: Unexpected resource version ID
<errors xmlns='http://schemas.google.com/g/2005'><error><domain>GData</domain><code>invalidResourceVersion</code><internalReason>Unexpected resource version ID</internalReason></error></errors>

        at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:594)
        at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)
        at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552)
        at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530)
        at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535)
        at com.google.gdata.client.Service.update(Service.java:1563)
        at com.google.gdata.client.Service.update(Service.java:1530)
        at com.google.gdata.client.GoogleService.update(GoogleService.java:583)
        at com.google.gdata.client.media.MediaService.update(MediaService.java:484)
        at com.company.google.io.GoogleDocsOutputStream.flush(GoogleDocsOutputStream.java:137)

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 06 октября 2011

Я обнаружил, что отсутствует команда "documentList.setETag (String)".Затем я устанавливаю символ '*', и он работает!

Ссылка: http://code.google.com/p/gdata-java-client/issues/detail?id=250#c0

...