Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Google Drive.Permissions.update在“中开始失败”;“500行”;例外_Java_Google App Engine_Google Drive Api - Fatal编程技术网

Java Google Drive.Permissions.update在“中开始失败”;“500行”;例外

Java Google Drive.Permissions.update在“中开始失败”;“500行”;例外,java,google-app-engine,google-drive-api,Java,Google App Engine,Google Drive Api,我使用了以下Java代码(在AppEngine中)在GoogleDrive中传输文件的所有权。突然,服务器出现“500 OK”错误,导致该操作开始失败。有什么变化了吗?原因是什么 // first add new owner as "writer" Permission newPermission= new Permission(); newPermission.setValue(newOwnerEmail); newPermission.setType("user"); newPermissi

我使用了以下Java代码(在AppEngine中)在GoogleDrive中传输文件的所有权。突然,服务器出现“500 OK”错误,导致该操作开始失败。有什么变化了吗?原因是什么

// first add new owner as "writer"
Permission newPermission= new Permission();
newPermission.setValue(newOwnerEmail);
newPermission.setType("user");
newPermission.setRole("writer");
Insert insert = service.permissions().insert(fileId, newPermission);
newPermission = insert.execute();

// then transfer ownsership
newPermission.setRole("owner");
newPermission.setValue(newOwnerEmail);
Update update = drive.permissions().update(fileId, newPermission.getId(), newPermission);
update.setTransferOwnership(true);
update.execute(); 
异常消息就是这样的,它没有说明太多

500 OK
{
  "code" : 500,
  "message" : null
}

at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1045)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
etc...

好的,我找到了具有以下修复程序的解决方案:

1) 将驱动器API库更新为1.17.0

2) 准备所有权转移时,立即将新的所有者权限角色设置为“所有者”。在早期的API版本中,它必须首先是“编写器”

下面是更正后的代码片段:

// first add new permission as "owner"
Permission newPermission= new Permission();
newPermission.setValue(newOwnerEmail);
newPermission.setType("user");
newPermission.setRole("owner");
Insert insert = service.permissions().insert(fileId, newPermission);
newPermission = insert.execute();

// then transfer ownsership
newPermission.setValue(newOwnerEmail);
Update update = drive.permissions().update(fileId, newPermission.getId(), newPermission);
update.setTransferOwnership(true);
update.execute();