java.lang.IllegalArgumentException:在java中尝试谷歌日历Api时没有找到JSON输入

时间:2012-09-07 10:11:12

标签: java oauth-2.0 google-calendar-api google-api-java-client

我从http://code.google.com/p/google-api-java-client/source/browse/calendar-cmdline-sample/?repo=samples下载了google calendar api示例,并在eclipse中创建了一个项目。 现在,当我尝试运行项目时,我会在此行获取java.lang.IllegalArgumentException: no JSON input found

 FileCredentialStore credentialStore = new FileCredentialStore(
        new File(System.getProperty("user.home"), ".credentials/calendar.json"), JSON_FACTORY);

有没有人试过这个例子?这有什么不对?

3 个答案:

答案 0 :(得分:1)

可以通过向.credentials / calendar.json文件提供输入来解决此错误。如果您在calendar.json中手动提供了以下条目,它将起作用:

{
  "installed": {
    "client_id": "client_id",
    "client_secret": "client_secret"
  }
}

似乎是Windows问题不允许在calendar.json文件上设置可写权限。方法setWritable(boolean,boolean)返回false,因此导致此问题。仍然手动提供json输入并不是一个完美的解决方案,但您的应用程序将起作用。

答案 1 :(得分:0)

当您的应用程序在之前执行并且在您的主目录中创建了空的.credentials / calendar.json文件时,可能会发生这种情况。如果您在Windows中运行应用程序,可能会发生这种情况,导致FileCredentialStore尝试执行以下操作: file.setReadable(false,false) 并失败。

要解决它,只需删除calendar.json即可。虽然您可能有另一个错误:[无法设置文件权限] 我不知道该如何解决。

答案 2 :(得分:-1)

该项目是否具有calendar.json资源文件。请分享完整的异常堆栈跟踪。 似乎从calendar.json文件中遗漏了一些必需的配置