Ошибка Grails при использовании службы электронной почты

Это контроллер

class JavaMailerController {

JavaMailerService javamailerservice
def x = {javamailerservice.serviceMethod()} }

Это служба

импортировать javax.mail. ; импортировать javax.mail.internet.; import java.util. *;

class JavaMailerService {

boolean transactional = false

def serviceMethod() { String  d_email = "[email protected]",
        d_password = "thispassword",
        d_host = "smtp.gmail.com",
        d_port  = "587",
        m_to = "[email protected]",
        m_subject = "Testing",
        m_text = "Hey, this is the testing email.";

    Properties props = new Properties();
    props.put("mail.smtp.user", d_email);
    props.put("mail.smtp.host", d_host);
    props.put("mail.smtp.port", d_port);
    props.put("mail.smtp.starttls.enable","true");

// на всякий случай, но на данный момент не нужно, как ни странно props.put ("mail.smtp.auth", "true"); //props.put("mail.smtp.debug "," true "); props.put ("mail.smtp.socketFactory.port", d_port); props.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put ("mail.smtp.socketFactory.fallback", "false");

    SecurityManager security = System.getSecurityManager();

    try
    {
        Authenticator auth = new SMTPAuthenticator();
        Session session = Session.getInstance(props, auth);
        //session.setDebug(true);

        MimeMessage msg = new MimeMessage(session);
        msg.setText(m_text);
        msg.setSubject(m_subject);
        msg.setFrom(new InternetAddress(d_email));
        msg.addRecipient(Message.RecipientType.TO,

новый Интернет-адрес (m_to)); Transport.send (сообщение); } catch (исключение mex) {mex.printStackTrace (); }}

}

частный класс SMTPAuthenticator расширяет javax.mail.Authenticator {public PasswordAuthentication getPasswordAuthentication () {возвращает новый PasswordAuthentication (d_email, d_password); }}

Ошибка

Ошибка 200: java.lang.NullPointerException: невозможно вызвать метод serviceMethod () для нулевого объекта Сервлет: grails URI: /JavaMailer/grails/javaMailer/x.dispatch Сообщение об исключении: невозможно вызвать метод serviceMethod () для нулевого объекта Причина: java. lang.NullPointerException: невозможно вызвать метод serviceMethod () для нулевого объекта. Класс: Неизвестно В строке: [-1] Фрагмент кода:


person zotherstupidguy    schedule 25.01.2009    source источник


Ответы (1)


Я думаю, что вы не верблюд поместили свое служебное поле в контроллер.

class JavaMailerController {
   JavaMailerService javaMailerService
   def x = {
      javaMailerService.serviceMethod()
   } 
}
person Chii    schedule 26.01.2009