Google文档列表API文件上传(411error - weblogic)

时间:2012-10-12 11:21:39

标签: google-docs-api

我对Documents List API有疑问。

我们在内部系统中使用Docs api。该系统使用WebLogic(Oracle)。

Docs api非常适合基本功能,如创建,列表等。

但是文件上传功能在webLogic上有一些问题。

在其他环境中没有问题。(我们在Tomcat& Jave测试过。)

这是我的来源和错误日志。

**来源**

private DocumentListEntry uploadGoogleDocumentFile(String url,
      String file, DocsUploadProgressListener listener, int progressUpdateInterval)
      throws IOException, ServiceException, InterruptedException {

    // Pool for handling concurrent upload tasks
    ExecutorService executor =  Executors.newFixedThreadPool(MAX_CONCURRENT_UPLOADS);

    File f = new File(file);
    MediaFileSource mediaFile = getMediaFileSource(file);

    mediaFile.setContentLength(f.length());

    ResumableGDataFileUploader uploader = new ResumableGDataFileUploader.Builder(service, new URL(url), mediaFile, null)
    .title(mediaFile.getName())
    .chunkSize(DEFAULT_CHUNK_SIZE).executor(executor)
    .trackProgress(listener, progressUpdateInterval)
    .build(); 

        uploader.addHeader("Content-Length", f.length()+"");
    uploader.start(); <-- error point

    // Wait for completion.
    listener.await();

    // Thread clean up.
    executor.shutdownNow();
    executor.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);

    if(uploader.isDone())
        return uploader.getResponse(DocumentListEntry.class);
    else
        return null;

}

**错误消息**

<html lang=en>

     错误411(需要长度)!! 1         {margin:0; padding:0} html,代码{font:15px / 22px arial,sans-serif} html {background:#fff; color:#222; padding:15px} body {margin:7%auto 0;最大宽度:390px;最小高度:180px;填充:30px 0 15px} &gt; body {background:url(// www.google.com/images/errors/robot.png)100%5px no-repeat; padding-right:205px} p {margin:11px 0 22px; overflow:hidden} ins {color :#777; text-decoration:none}一个img {border:0} @media屏幕和(max-width:772px){body {background:none; margin-top:0; max-width:none; padding-right :0}}         

411。那是一个错误。   

POST请求需要Content-length标头。那个?셲我们都知道。         在com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:632)         在com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564)         在com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)         在com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)         在com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)         在com.google.gdata.client.media.MediaService.createResumableUploadSession(MediaService.java:630)         在com.google.gdata.client.media.ResumableGDataFileUploader $ Builder.build(ResumableGDataFileUploader.java:250)         在com.posco.google.documents.v3.DocumentsCore.uploadGoogleDocumentFile(DocumentsCore.java:530)         在com.posco.google.documents.v3.DocumentsCore.uploadGoogleDocumentFiles(DocumentsCore.java:496)         在com.posco.google.documents.v3.V3DocumentsManager.uploadFile(V3DocumentsManager.java:171)         在com.kcube.lib.repo.GoogleDocsRepository.store(GoogleDocsRepository.java:117)         在com.kcube.mov.ptube.PtubeItemManager.updateAttach(PtubeItemManager.java:98)         在com.kcube.mov.ptube.PtubeItemUser $ GoogleDocsDaemon.execute(PtubeItemUser.java:182)         在com.kcube.sys.daemon.Daemon.run(Daemon.java:27)

0 个答案:

没有答案