Toon posts:

[Java] Mail met servlet *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een servlet die mail verstuurd. Alleen ik kom niet langs dit probleem. Ik krijg deze error:

java.lang.NoClassDefFoundError: javax/activation/DataSource
at hexindo.sendMail.perform(sendMail.java:60)
at hexindo.FormController.doPost(FormController.java:52)
at hexindo.Controller.doGet(Controller.java:25)

regel 60 is deze code:
code:
1
Message message = new MimeMessage(mailSession);


verder heb ik de mail.jar in common/lib/ gezet van apache tomcat.


Dit is de code die de mail zou moeten versturen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;



public class sendMail implements Action
{
    
    DatabaseConnection db;
    int mailServerPort = 22;
    String mailServerName, subject, from, messageText;   
   
    public void perform (HttpServlet servlet, HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException
    {
        db = (DatabaseConnection)request.getAttribute("db");
      
        mailServerName = "mail.hexindo-tbk.co.id";
        subject = "Hallo dit is een test";
        from = "Joost";
        messageText = "test";      
      
        //Mail Properties zetten
        Properties mailProps = new Properties();
                
        mailProps.put("mail.smtp.host", mailServerName);
        mailProps.put("mail.smtp.port", String.valueOf(mailServerPort));
        System.out.println("Mail Props: " + mailProps);
        
        //Sessie maken
        Session mailSession = Session.getDefaultInstance(mailProps, null);
        System.out.println("MailSesion: " + mailSession);
        
        
        try{
            //adress maken
            InternetAddress fromAddr = new InternetAddress("Joost");
            System.out.println("From adress: " + fromAddr);
            
            InternetAddress toAddrs = new InternetAddress("joostnufan@hotmail.com");
            System.out.println("To Adress: " + toAddrs);
        
            //Message aanmaken
            Message message = new MimeMessage(mailSession);
                    
            System.out.println("MimeMessage: " + message);
            
            message.setFrom(fromAddr);
            message.setRecipient(Message.RecipientType.TO, toAddrs);
            message.setSubject(subject);
            message.setContent(messageText.toString(), "text/plain");

            //Mail versturen
            Transport.send(message);
        }            
        catch(AddressException aEx) {
            System.out.println("Sending mail problem: " + aEx); 
        } 
        catch(ParseException pEx) {
            System.out.println("Sending mail problem: " + pEx); 
        } 
        catch(Exception ex) {
            System.out.println("Sending mail problem: " + ex);
        }
        
        forward("mailSend.jsp",request,response);
    }   
    
    
    private void forward(String url, HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException
    {
        RequestDispatcher rd = request.getRequestDispatcher(url);
        rd.forward(request,response);   
    }
    
    
}

Verwijderd

Download het activation framework:

http://java.sun.com/products/javabeans/glasgow/jaf.html

En zet deze jar ook in je classpath.

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 16-08 19:14

Eelke Spaak

- Vlad -

En als 'ie het dan nog niet doet kan je overwegen om

Java:
1
import javax.activation.*;


bij je imports te zetten.

TheStreme - Share anything with anyone


Verwijderd

Controleer voor de zekerheid ook even of de naam van de directory WEB-INF in hoofdletters staat. Met kleine letters wordt deze dir niet herkend.

Verwijderd

Topicstarter
de activation framework heeft het gedaan, dank jullie wel