# Java Mail . Exception java.lang.NoClassDefFoundError



## freez (7. Jun 2006)

Hallo

ich wollte heut mal etwas mit JavaMail spielen. Ich habe mir die 1.4er Version runter geladen, und ein Beispiel aus dem Tutorial bei sun rausgezogen: Einfach mal schauen, was im Posteingang ist.

Wer das Tutorial kennt, sollte das kennen:

```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

import javax.mail.*;

/*
 * Erstellt am 07.06.2006 08:46:52 
 *
 * TODO 
 */

public class mail_test
{

	public mail_test()
	{
		super();
		// TODO Automatisch erstellter Konstruktoren-Stub
	}

	/**
	 * @param args
	 * @throws MessagingException 
	 * @throws IOException 
	 */
	public static void main(String[] args) throws MessagingException, IOException
	{
		String host = "mail.hostname";
		String username = "name";
		String password = "pwd";

	    // Create empty properties
	    Properties props = new Properties();

	    // Get session
	    Session session = Session.getDefaultInstance(props, null);

	    // Get the store
	    Store store = session.getStore("pop3");

	    // Connect to store
	    store.connect(host, username, password);

	    // Get folder
	    Folder folder = store.getFolder("INBOX");

	    // Open read-only
	    folder.open(Folder.READ_ONLY);

	    BufferedReader reader = new BufferedReader (
	      new InputStreamReader(System.in));

	    // Get directory
	    Message message[] = folder.getMessages();

	    for (int i=0, n=message.length; i<n; i++) {

	       // Display from field and subject
	       System.out.println(i + ": " + message[i].getFrom()[0] 
	         + "\t" + message[i].getSubject());

	      System.out.println("Do you want to read message? [YES to read/QUIT to end]");
	      String line = reader.readLine();
	      if ("YES".equals(line)) {

	        // Display message content
	        System.out.println(message[i].getContent());

	      } else if ("QUIT".equals(line)) {
	        break;
	      }
	    }

	    // Close connection 
	    folder.close(false);
	    store.close();
	}
}
```
Ist das Postfach leer, läuft das komplette Programm durch, ohne Probleme. Nun habe ich mir ne testmail geschickt, und in der Zeile mit 
	
	
	
	





```
Message message[] = folder.getMessages();
```
kommt bei mir folgende exception:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
	at com.sun.mail.pop3.POP3Folder.createMessage(POP3Folder.java:317)
	at com.sun.mail.pop3.POP3Folder.getMessage(POP3Folder.java:298)
	at javax.mail.Folder.getMessages(Folder.java:929)
	at mail_test.main(mail_test.java:82)

Ich habe auch verschiedene Postfächer versucht. Mit dem selben Ergebniss. Immer bei folder.getMessages() kommt die Exception, wenn das Postfach eine oder mehrere Mails beinhaltet. Was mache ich verkehrt?

Zur Info, falls wichtig ... ich habe es einmal mit gmx und bei meinem lokalen DSL Provider versucht und ihr könnt davon ausgehen, daß ich die Strings host, username und password richtig ausgefüllt habe.


----------



## Murray (7. Jun 2006)

JavaMail verwendet das Activation-Framework. Die Fehlermeldung deutet darauf hin, dass Du activation.jar nicht im Classpath hast.


----------



## freez (7. Jun 2006)

Super ... genau daran lags  Danke


----------

