2010-08-18 83 views
4

我试图通过某个用户使用YouTube Java GData库/ API获取视频列表。YouTube Java API问题

然而,当我尝试使用YouTubeService service = new YouTubeService("Cyphon-MyCampusPulse-1", YOUTUBE_API_KEY);创建一个服务,我得到以下运行时异常:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/MessagingException 
at scrapers.YouTubePulseScraper.<init>(YouTubePulseScraper.java:37) 
at scrapers.YouTubePulseScraper.main(YouTubePulseScraper.java:153) 
Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
... 2 more 

我不知道该异常如何与我在做什么。任何提示都表示赞赏。

回答

7

您需要将JavaMail jar添加到您的classpath,其中包含javax.mail.MessagingException。你可以在这里得到它:http://www.oracle.com/technetwork/java/index-138643.html

编辑: 从文档中提取:

的的GData Java客户端库有 以下外部依赖。以下部分将介绍如何在您的最喜欢的操作系统(或您在工作时坚持使用的OS )上安装这些依赖关系的 。

  • JDK(Java开发工具包)版本1.5 +
  • Apache Ant的版本1.7+
  • 的mail.jar Sun公司的JavaMail API 1.4+
  • 的activation.jar Sun的JavaBeansActivationFramewrok。这仅是媒体特定API (包括文档列表数据API, Picasa网络相册API和YouTube数据 API)所需的 。
  • Sun的Servlet API版本2.3+中的servlet.jar。这仅在 执行 'sample.authsub'或 'sample.gbase.recipe'包中的代码示例时才需要。

几个的.jar依赖的是 只需要在特定的样品, 但要避免生成错误,最好 刚刚得到的一切。选择您选择的 操作系统 继续: WindowsMac OS X, 或 Linux

我已经添加了这个,因为如果你错过了一个依赖关系,你可能会错过其他的,所以你应该仔细检查你拥有了一切。

+0

谢谢,我完全错过了这个依赖列表。我真的很困惑,为什么邮件被使用,但我想这不是我的关注。 – Karan 2010-08-18 18:48:02

0

你需要Java Mail,这可从Maven Repository

<dependency> 
    <groupId>javax.mail</groupId> 
    <artifactId>mail</artifactId> 
    <version>1.4.5</version> 
</dependency>