J'utilise glassfish v3 où j'ai créé une session JavaMail via la console d'administration. Je veux utiliser la session Mail comme ceci:Injecter @Resource dans la classe normale
....
import javax.annotation.Resource;
import javax.mail.*;
import javax.mail.internet.*;
public class Mailer {
MailGenerator mailGenerator;
@Resource(name = "mail/WMCMail")
private Session mailSession;
public Mailer(MailGenerator mailGenerator) {
this.mailGenerator = mailGenerator;
}
public void sendMixedMail(String recipient, String subject) {
try {
Message message = new MimeMessage(mailSession);
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse(recipient, false));
message.setSubject(subject);
......
Transport.send(message);
logger.log(Level.INFO, "Mail sent to {0}.", recipient);
} catch (MessagingException ex) {
logger.log(Level.SEVERE, "Error in sending email to " + recipient, ex);
}
}
}
Quand j'appelle la méthode sendMixedMail je vois que la mailSession est nulle. Est-il impossible d'injecter une ressource dans une classe normale? Et quand je dis normal, je veux dire une classe qui n'est pas un haricot géré ou un ejb-quelque chose.