【问题标题】:Google Drive api Java QuickStart EOFExceptionGoogle Drive api Java QuickStart EOFException
【发布时间】:2017-04-06 14:54:47
【问题描述】:

我正在关注 google drive v3 api quickstart tutorial 我不想在这个应用程序中使用 gradle,因为它是一个小组项目。
我已经下载了 google drive v3 库。

我正在使用 Intellij,并且已将所有 jar 添加到类路径中。所有 jar 都成功导入,IDE 没有给出任何错误。
在运行时,我收到一条警告,在线阅读似乎是 Windows 兼容性问题。
我已经下载了带有用户 ID 和用户密码的 .json 文件,并将其放在与主目录相同的文件夹中
我的代码与快速入门示例之一相同:

我得到的错误如下:

Apr 06, 2017 2:31:52 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: unable to change permissions for everybody: C:\Users\HP\.credentials\drive-java-quickstart
Apr 06, 2017 2:31:52 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: unable to change permissions for owner: C:\Users\HP\.credentials\drive-java-quickstart
Exception in thread "main" java.io.EOFException
	at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2624)
	at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3099)
	at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853)
	at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349)
	at com.google.api.client.util.IOUtils.deserialize(IOUtils.java:171)
	at com.google.api.client.util.store.FileDataStoreFactory$FileDataStore.<init>(FileDataStoreFactory.java:102)
	at com.google.api.client.util.store.FileDataStoreFactory.createDataStore(FileDataStoreFactory.java:73)
	at com.google.api.client.util.store.AbstractDataStoreFactory.getDataStore(AbstractDataStoreFactory.java:55)
	at com.google.api.client.auth.oauth2.StoredCredential.getDefaultDataStore(StoredCredential.java:171)
	at com.google.api.client.auth.oauth2.AuthorizationCodeFlow$Builder.setDataStoreFactory(AuthorizationCodeFlow.java:736)
	at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder.setDataStoreFactory(GoogleAuthorizationCodeFlow.java:209)
	at com.elox.Main.authorize(Main.java:77)
	at com.elox.Main.getDriveService(Main.java:93)
	at com.elox.Main.main(Main.java:103)
	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:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

我不明白为什么会收到此错误或如何纠正它

【问题讨论】:

  • 您的用户凭据在哪里?

标签: java google-api google-drive-api drive


【解决方案1】:

我知道这是一篇旧帖子,但我的堆栈跟踪几乎完全相同,但找不到答案。所以,我发帖希望它能帮助那些追随我的人。

该问题似乎与文件/目录权限有关。一旦我将 FileDataStoreFactory 使用的文件路径更改为我的应用程序具有读/写权限的目录,OAuth2 就可以正常工作。因此,请确保您使用的是不受限制的文件路径,并且所有目录都具有正确的所有权和权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多