程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了播放框架Mailer在maile.send()方法上抛出NullPointerException大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决播放框架Mailer在maile.send()方法上抛出NullPointerException?

开发过程中遇到播放框架Mailer在maile.send()方法上抛出NullPointerException的问题如何解决?下面主要结合日常开发的经验,给出你关于播放框架Mailer在maile.send()方法上抛出NullPointerException的解决方法建议,希望对你解决播放框架Mailer在maile.send()方法上抛出NullPointerException有所启发或帮助;

看来您未正确初始化@H_247_3@mailerClIEnt。

该示例显示您需要将其注入到控制器中,该控制器本身由Play框架初始化。

您将其注入自己的@H_247_3@mailerservice班级。我想,你这样做new Mailerservice()controllers.Application.sendMailTest。结果,@H_247_3@mailerClIEnt不会注入到@H_247_3@mailerservice类中(如果您初始化@H_247_3@mailerservice自己,谁会这样做?)

解决方案:您需要@H_247_3@mailerClIEnt像示例中一样注入控制器,然后将其传递给您的@H_247_3@mailerservice类。

import play.libs.mailer.Email;
import play.libs.mailer.MailerClIEnt;
public class Mailerservice {
  MailerClIEnt mailerClIEnt;

  public Mailerservice(MailerClIEnt mailerClIEnt){
    this.mailerClIEnt = mailerClIEnt;
  }

  public voID sendEmail() {
    Email email = new Email();
    email.setSubject("Activation link");
    email.setFrom("from@gmail.com");
    email.addTo("to@gmail.com");
    email.setbodyText("Hello");
    mailerClIEnt.send(email);
  }
}

解决方法

我正在使用Play Mailer模块。我在 @H_837_37@mailerClient.send(email) 处收到NullPointerException 。

发送邮件代码

import javax.inject.Inject;
import play.libs.mailer.Email;
import play.libs.mailer.MailerClient;
public class Mailerservice {
    @Inject MailerClient mailerClient;
    public void sendEmail() {
        Email email = new Email();
        email.setSubject("Activation Link");
        email.setFrom("from@gmail.com");
        email.addTo("to@gmail.com");
        email.setBodyText("Hello");
        mailerClient.send(email);
    }
}

application.conf

 # Logger provided to your application:
logger.application=DEBUG
play{
  modules {
    enabled += "play.api.libs.mailer.MailerModule"
    #enabled += "play.api.libs.mailer.SMTPConfigurationModule"
  }
  mailer {
  host=smtp.gmail.com
  port=465
  ssl=yes
  tls=no
  user="my gmail username"
  password="gmail password"
  debug=yes
}
}

我也有加入 “com.typesafe.play” %%“播放邮件”%“3.0.1” 在build.sbt

播放版本:-2.4

Java版本:1.8

我正在添加堆栈跟踪

play.api.http.httpErrorHandlerExceptions$$anon$1: Execution exception[[NullPointerException: null]]
    at play.api.http.httpErrorHandlerExceptions$.throwableToUsefulException(httpErrorHandler.scala:265) ~[play_2.11-2.4.6.jar:2.4.6]
    at play.api.http.DefaulthttpErrorHandler.onServerError(httpErrorHandler.scala:191) ~[play_2.11-2.4.6.jar:2.4.6]
    at play.api.GlobalSetTings$class.onError(GlobalSetTings.scala:179) [play_2.11-2.4.6.jar:2.4.6]
    at play.api.DefaultGlobal$.onError(GlobalSetTings.scala:212) [play_2.11-2.4.6.jar:2.4.6]
    at play.api.http.GlobalSetTingshttpErrorHandler.onServerError(httpErrorHandler.scala:94) [play_2.11-2.4.6.jar:2.4.6]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:151) [play-netty-server_2.11-2.4.6.jar:2.4.6]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$9$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:148) [play-netty-server_2.11-2.4.6.jar:2.4.6]
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36) [scala-library-2.11.6.jar:na]
    at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:215) [scala-library-2.11.6.jar:na]
    at scala.util.Try$.apply(Try.scala:191) [scala-library-2.11.6.jar:na]
    at scala.util.Failure.recover(Try.scala:215) [scala-library-2.11.6.jar:na]
    at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [scala-library-2.11.6.jar:na]
    at scala.concurrent.Future$$anonfun$recover$1.apply(Future.scala:324) [scala-library-2.11.6.jar:na]
    at scala.concurrent.impl.CallBACkRunnable.run(Promise.scala:32) [scala-library-2.11.6.jar:na]
    at play.api.libs.iteratee.Execution$trampoline$.executescheduled(Execution.scala:109) [play-iteratees_2.11-2.4.6.jar:2.4.6]
    at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:71) [play-iteratees_2.11-2.4.6.jar:2.4.6]
    at scala.concurrent.impl.CallBACkRunnable.executeWithValue(Promise.scala:40) [scala-library-2.11.6.jar:na]
    at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [scala-library-2.11.6.jar:na]
    at scala.concurrent.Promise$class.complete(Promise.scala:55) [scala-library-2.11.6.jar:na]
    at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [scala-library-2.11.6.jar:na]
    at scala.concurrent.impl.Future$PromiseCompleTingRunnable.run(Future.scala:23) [scala-library-2.11.6.jar:na]
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40) [akka-actor_2.11-2.3.13.jar:na]
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) [akka-actor_2.11-2.3.13.jar:na]
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [scala-library-2.11.6.jar:na]
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [scala-library-2.11.6.jar:na]
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.11.6.jar:na]
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.11.6.jar:na]

**Caused by: java.lang.NullPointerException: null**
    at mailer.Mailerservice.sendEmail(Mailerservice.java:17) ~[classes/:na]
    at controllers.Application.sendMailTest(Application.java:14) ~[classes/:na]
    at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$10$$anonfun$apply$10.apply(Routes.scala:324) ~[classes/:na]
    at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$10$$anonfun$apply$10.apply(Routes.scala:324) ~[classes/:na]
    at play.core.routIng.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:136) ~[play_2.11-2.4.6.jar:2.4.6]
    at play.core.routIng.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:127) ~[play_2.11-2.4.6.jar:2.4.6]
    at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:70) ~[play_2.11-2.4.6.jar:2.4.6]

大佬总结

以上是大佬教程为你收集整理的播放框架Mailer在maile.send()方法上抛出NullPointerException全部内容,希望文章能够帮你解决播放框架Mailer在maile.send()方法上抛出NullPointerException所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。