Google Drive api Java QuickStart EOFException

时间:2017-04-06 14:54:48

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

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

我正在使用Intellij,我已将所有jar添加到类路径中。所有罐子都成功导入,IDE不会给出任何错误。
在运行时我得到一个警告,从在线阅读似乎是Windows兼容性的问题。
我已经下载了带有用户ID和用户密码的.json文件,并将其放在与main相同的文件夹中
我的代码与quickstart示例中的代码相同:

我得到的错误如下:



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)
&#13;
&#13;
&#13;

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

1 个答案:

答案 0 :(得分:0)

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

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