2010-08-18 86 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>