Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 API包';memcache';或致电';Get()';找不到_Java_Api_Google App Engine_Maven_Google Drive Api - Fatal编程技术网

Java API包';memcache';或致电';Get()';找不到

Java API包';memcache';或致电';Get()';找不到,java,api,google-app-engine,maven,google-drive-api,Java,Api,Google App Engine,Maven,Google Drive Api,我正在浏览Google Drive API示例,这些示例可以在以下站点找到:、和。正如你可能猜到的,我刚刚开始使用谷歌API。因此,我相信答案是肯定的,但我对这个主题的知识还不足以解释这些发现 无论如何,使用谷歌的示例代码,我已经成功地为我的服务帐户连接到驱动器。但是,我无法插入文件。我收到以下错误: com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'memcache' or call 'Get(

我正在浏览Google Drive API示例,这些示例可以在以下站点找到:、和。正如你可能猜到的,我刚刚开始使用谷歌API。因此,我相信答案是肯定的,但我对这个主题的知识还不足以解释这些发现

无论如何,使用谷歌的示例代码,我已经成功地为我的服务帐户连接到驱动器。但是,我无法插入文件。我收到以下错误:

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'memcache' or call 'Get()' was not found. at com.google.apphosting.api.ApiProxy$1.get(ApiProxy.java:162) at com.google.apphosting.api.ApiProxy$1.get(ApiProxy.java:160) at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86) at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:26) at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:49) at com.google.appengine.api.appidentity.AppIdentityServiceImpl.getAccessToken(AppIdentityServiceImpl.java:188) at com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential.intercept(AppIdentityCredential.java:93) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859) at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequestWithoutGZip(MediaHttpUploader.java:545) at com.google.api.client.googleapis.media.MediaHttpUploader.executeCurrentRequest(MediaHttpUploader.java:562) at com.google.api.client.googleapis.media.MediaHttpUploader.executeUploadInitiation(MediaHttpUploader.java:519) at com.google.api.client.googleapis.media.MediaHttpUploader.resumableUpload(MediaHttpUploader.java:384) at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:336) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:418) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) at DriveTest.GDrive.insertFile(GDrive.java:80) at DriveTest.GDrive.putFile(GDrive.java:58) at DriveTest.App.main(App.java:28) 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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) The API package 'memcache' or call 'Get()' was not found.
包驱动测试;
导入com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential;
导入com.google.api.client.googleapis.services.CommonGoogleClientRequestInitializer;
导入com.google.api.client.googleapis.services.GoogleClientRequestInitializer;
导入com.google.api.client.http.FileContent;
导入com.google.api.client.http.HttpTransport;
导入com.google.api.client.http.javanet.NetHttpTransport;
导入com.google.api.client.json.JsonFactory;
导入com.google.api.client.json.jackson.JacksonFactory;
导入com.google.api.services.drive.drive;
导入com.google.api.services.drive.DriveScopes;
导入com.google.api.services.drive.model.File;
导入com.google.api.services.drive.model.ParentReference;
导入com.google.api.services.drive.model.Permission;
导入java.io.IOException;
导入java.net.URISyntaxException;
导入java.security.GeneralSecurityException;
导入java.util.ArrayList;
导入java.util.array;
公共级GDrive{
私有静态GDrive实例=null;
专用静态驱动器=空;
私有静态最终字符串API_KEY=“ourkey”;
受保护的GDrive(){}
公共静态GDrive getInstance(){
if(实例==null){
实例=新的GDrive();
}
返回实例;
}
public void setDriveService()引发GeneralSecurityException、IOException、URI语法Exception{
如果(驱动器==null){
HttpTransport HttpTransport=新的NetHttpTransport();
JsonFactory JsonFactory=新的JacksonFactory();
ArrayList范围=新的ArrayList();
添加(DriveScopes.DRIVE);
AppIdentityCredential凭据=新的AppIdentityCredential.Builder(scopes.build();
GoogleClientRequestInitializer键Initializer=新的通用GoogleClientRequestInitializer(API_键);
drive=new drive.Builder(httpTransport,jsonFactory,null)
.setHttpRequestInitializer(凭证)
.setGoogleClientRequestInitializer(密钥初始化器)
.build();
}
}
public void putFile(字符串文件名)引发异常{
File theFile=this.insertFile(this.drive,“Report”,“a Report!”,“”,“application/vnd.ms excel”,文件名);
权限thePermission=this.setShare(this.drive,theFile.getId(),”someuser@somedomain.com“,”用户“,”读者“);
}
专用文件插入文件(驱动器服务、字符串标题、字符串说明、,
字符串parentId、字符串mimeType、字符串文件名){
//文件的元数据。
文件体=新文件();
正文.setTitle(title);
body.setDescription(描述);
body.setMimeType(mimeType);
//设置父文件夹。
if(parentId!=null&&parentId.length()>0){
body.setParents(
Arrays.asList(newparentreference().setId(parentId));
}
//文件的内容。
java.io.File fileContent=新的java.io.File(文件名);
FileContent mediaContent=新的FileContent(mimeType,FileContent);
试一试{
File File=service.files().insert(body,mediaContent.execute();
//取消注释以下行以打印文件ID。
System.out.println(“文件ID:%s”+File.getId());
返回文件;
}捕获(IOE异常){
System.out.println(“发生错误:+e”);
返回null;
}
}
/**
*插入新权限。
*
*@param服务驱动API服务实例。
*@param fileId要插入权限的文件的ID。
*@param value用户或组电子邮件地址、域名或{@code null}
“默认”类型。
*@param键入值“用户”、“组”、“域”或“默认值”。
*@param角色的值为“所有者”、“作者”或“读者”。
*@如果成功返回插入的权限,否则返回{@code null}。
*/
私有权限集共享(驱动器服务、字符串文件ID、,
字符串值、字符串类型、字符串角色)引发异常{
权限newPermission=新权限();
newPermission.setValue(值);
newPermission.setType(类型);
newPermission.setRole(角色);
试一试{
return service.permissions().insert(fileId,newPermission.execute();
}捕获(IOE异常){
System.out.println(“发生错误:“+e”);
}
返回新权限;
}
}
最后,我使用Maven处理依赖关系:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>DriveTest</groupId>
  <artifactId>DriveTest</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>DriveTest</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
      <dependency>
          <groupId>com.google.api-client</groupId>
          <artifactId>google-api-client</artifactId>
          <version>1.17.0-rc</version>
      </dependency>
      <dependency>
          <groupId>com.google.api-client</groupId>
          <artifactId>google-api-client-appengine</artifactId>
          <version>1.17.0-rc</version>
      </dependency>
      <dependency>
          <groupId>com.google.apis</groupId>
          <artifactId>google-api-services-drive</artifactId>
          <version>v2-rev105-1.17.0-rc</version>
      </dependency>
      <dependency>
          <groupId>com.google.http-client</groupId>
          <artifactId>google-http-client-jackson</artifactId>
          <version>1.17.0-rc</version>
      </dependency>
      <dependency>
          <groupId>com.google.appengine</groupId>
          <artifactId>appengine-api-1.0-sdk</artifactId>
          <version>1.8.1</version>
      </dependency>
  </dependencies>
</project>

4.0.0
驾驶测试
驾驶测试
1.0-快照
罐子
驾驶测试
http://maven.apache.org
UTF-8
朱尼特
朱尼特
3.8.1
测试
com.google.api-client
谷歌api客户端
1.17.0-rc
com.google.api-client
谷歌api客户端appengine
1.17.0-rc
com.google.api
谷歌api服务驱动
v2-rev105-1.17.0-rc
com.google.http-client
谷歌http客户端jackson
1.17
import com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential;
import com.google.api.client.googleapis.services.CommonGoogleClientRequestInitializer;
import com.google.api.client.googleapis.services.GoogleClientRequestInitializer;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
...

/** The API Key of the project */
private static final String API_KEY = "the_api_key_of_the_project";

/**
 * Build and returns a Drive service object authorized with the
 * application's service accounts.
 *
 * @return Drive service object that is ready to make requests.
 */
public static Drive getDriveService() throws GeneralSecurityException,
    IOException, URISyntaxException {
  HttpTransport httpTransport = new NetHttpTransport();
  JsonFactory jsonFactory = new JacksonFactory();
  AppIdentityCredential credential =
      new AppIdentityCredential.Builder(DriveScopes.DRIVE).build();
  GoogleClientRequestInitializer keyInitializer =
      new CommonGoogleClientRequestInitializer(API_KEY);
  Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
      .setHttpRequestInitializer(credential)
      .setGoogleClientRequestInitializer(keyInitializer)
      .build();
  return service;
}