Plugin email-confirmation com bug
24/07/2012 16:09
0
Pessoal,

Estou quebrando a cabeça com um bug bem estranho com o plugin email-confirmation... eu o explorei por inteiro e ainda não entendo o porque do não funcionamento do envio de email quando esta dentro de um Service.

Quando faço:

emailConfirmationService.sendConfirmation(cliente.email,"teste",
[from:"emaildeteste@gmail.com"])


dentro de um controller funciona perfeiramente... lembrando que a definicação
def emailConfirmationService
esta dentor da classe... agora quando coloco esse mesmo trecho de codigo no meu service... ele simplismente nao funciona.

Eu ja cheguei inclusive a fixar valores, tais como:

emailConfirmationService.sendConfirmation("teste@teste.com.br","teste",
[from:"emaildeteste@gmail.com"])


mas mesmo assim ele apresenta esse erro:


2012-07-22 20:44:21,988 [http-bio-6060-exec-5] ERROR StackTrace - Full Stack Trace:
java.lang.NullPointerException: Cannot invoke method sendConfirmation() on null object
at br.com.udoctor.autenticar.AutenticaLoginService$$ENdwbj8K.loginAutomatico(AutenticaLoginService.groovy:16)
at br.com.udoctor.cadastro.CadastroController$$ENdwb1AW.cadastroInicialCliente(CadastroController.groovy:47)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)



consigo efetuar o envio sem error quando efetuo o envio dentro de um controller... se eu coloco o mesmo codigo dentro do service ele nao funciona.

new AutenticaUsuarioService().loginAutomatico(cliente)


alguem sabe o porque?
Tags: email confirmation


0
Oi Daniel, você já contactou o autor do plugin?


0
O dono do plugin é o pessoal da grailsrocks, donos de varios plugins... então o suporte deles é pago, 50 dolares se nao me engano.

http://grailsrocks.com/about/

24/07/2012 17:33


0
Daniel, na boa? Esses 50 dolares valem cada centavo.


1
Concordo plenamente Kico, mas era um problema muito ridiculo para um suporte profissional (pelo menos na minha opniao)

debbuguei o plugin e resolvi o problema:

    		/*mailService.sendMail {
to emailAddress
from binding.from ?: ConfigurationHolder.config.emailConfirmation.from
subject thesubject
def bodyArgs = [view:viewName, model:binding]
if (pluginName) {
bodyArgs.plugin = pluginName
}
body(bodyArgs)
}*/

sendMail {
to emailAddress
subject thesubject
body( view: viewName,
plugin: pluginName,
model:[fromAddress: binding.fromAddress, uri: binding.uri])
}


Para as pessoas que usam a versão do plugin mail 1.0 essa solução funciona perfeitamente.

Existia um problema no Map model, cujo qual carrega os atributos fromAddress e uri(confirmation link).

Então entrem no EmailConfirmationService do plugin email-confirmation e substitua da linha 87 até o final do try/catch.

O problema surge justamente com o uso da versão mais nova do plugin mail... isso acontece porque o plugin email-confirmation é totalmente dependente dos plugins quartz (escalonador de jobs) e mail.

Kico, sei que esta fora de assunto, mas você é aqui de Minas? Existe algum evento de Grails na região, ou grupo de programadores?

Ainda sou novato no mundo Groovy and Grails (1 mês), mas estou muito animado com o framework.

att,

Daniel

25/07/2012 02:36


0
opa,

no fromAddress favor adicionar ?: ConfigurationHolder.config.emailConfirmation.from, acabei esquecendo
25/07/2012 02:37



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto