Я использую glassfish v3, где я создал сеанс JavaMail через консоль администратора. Я хочу использовать сеанс Почты так:
....
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);
}
}
}
Когда я вызываю метод sendMixedMail, я вижу, что mailSession имеет значение null. Разве невозможно внедрить ресурс в обычный класс? И когда я говорю «нормально», я имею в виду класс, который не является управляемым бином или ejb-чем-то.