2015-12-08 36 views
4

试图实现从https://developers.google.com/google-apps/calendar/quickstart/java采取谷歌日历的代码,但如下得到了一个错误:得到了错误,同时运行日历API示例代码

Exception in thread "main" java.lang.NoClassDefFoundError: org/mortbay/jetty/Handler 
at CalendarQuickstart.authorize(CalendarQuickstart.java:76) 
at CalendarQuickstart.getCalendarService(CalendarQuickstart.java:89) 
at CalendarQuickstart.main(CalendarQuickstart.java:101) 
Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.Handler 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 3 more 

和该行

Credential credential = new AuthorizationCodeInstalledApp(
     flow, new LocalServerReceiver()).authorize("user"); 

在此之前,我只是从https://developers.google.com/google-apps/calendar/quickstart/java复制代码并创建了Java项目,并且这两个Jar文件丢失了

import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; 
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; 

导入这些jar文件后出现该错误。请帮忙

回答

0

Google Calendar API Java Quickstart工作正常。根据收到的错误消息,它看起来像缺少码头依赖项之一。如果您使用Gradle版本(如here建议,请在你的“摇篮Depenencies”这个jar文件 - jetty-6.1.26.jar

如果你错过了码头的依赖关系,打开你的build.gradle和检查,以确保你有中包括下面列出的所有的依赖关系。

dependencies { 
    compile 'com.google.api-client:google-api-client:1.20.0' 
    compile 'com.google.oauth-client:google-oauth-client-jetty:1.20.0' 
    compile 'com.google.apis:google-api-services-calendar:v3-rev125-1.20.0' 
} 

最后,生成并运行该文件摇篮下载缺少的依赖关系。你现在应该可以正常运行!:)

祝你好运!

+0

感谢您的回答。但我不使用gradle构建。我试图用.jar文件运行,但没有得到确切的jar文件,我尝试了上面提到的jar文件,但同样的问题发生。 –

+0

@Rahul如果您尝试从头开始删除所有库并运行构建清单(如果它是Maven或Ant)并且在构建之后清理项目,那么有时这会有所帮助。您的工作空间中可能会有些东西无法找到JAR文件。 – Andres