Ошибка Grails при использовании сервиса электронной почты - PullRequest
2 голосов
/ 25 января 2009

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

класс JavaMailerController {

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

Это услуга

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

класс JavaMailerService {

boolean transactional = false

def serviceMethod() { String  d_email = "thisemail@gmail.com",
        d_password = "thispassword",
        d_host = "smtp.gmail.com",
        d_port  = "587",
        m_to = "thisto@gmail.com",
        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", "Ложь");

    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 (MSG); } поймать (исключение мекс) { mex.printStackTrace (); } } * * Тысяча двадцать-один

}

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

Ошибка

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

1 Ответ

2 голосов
/ 26 января 2009

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

class JavaMailerController {
   JavaMailerService javaMailerService
   def x = {
      javaMailerService.serviceMethod()
   } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...