Java 致命异常MailerClient Play 2.5
我正在尝试从我的Play应用程序发送电子邮件。 电子邮件对象由另一个类准备并传递给将发送电子邮件的控制器。但是,当尝试发送电子邮件时,会引发致命异常。 我的控制器设置如下:Java 致命异常MailerClient Play 2.5,java,email,akka,mailer,playframework-2.5,Java,Email,Akka,Mailer,Playframework 2.5,我正在尝试从我的Play应用程序发送电子邮件。 电子邮件对象由另一个类准备并传递给将发送电子邮件的控制器。但是,当尝试发送电子邮件时,会引发致命异常。 我的控制器设置如下: public class UserController extends BaseController<User> { @Inject MailerClient mailerClient; @Inject public UserController(MailerClient client) { supe
public class UserController extends BaseController<User> {
@Inject
MailerClient mailerClient;
@Inject
public UserController(MailerClient client) {
super(new UserService());
mailerClient = client;
}
public Result create(){
resourceForm = formFactory.form(User.class);
Form<User> filledForm = resourceForm.bindFromRequest();
if(filledForm.hasErrors()){
return badRequest(filledForm.errorsAsJson());
}
User user = filledForm.get();
Map emailMap = new HashMap<>();
emailMap.put("email" , user.email);
List<User> existingUser = service.where(emailMap);
if(existingUser.size() != 0){
return JsonResponse.JsonMessage(BAD_REQUEST , "This Email is already registered");
}else{
user.status = getStatus(DORMANT);
user.save();
UserRegistration registration = new UserRegistration(user);
registration.save();
Email email = EmailDispatcher.buildEmail(ACTIVATION , user.email , registration.link);
mailerClient.send(email);
}
return ok(Json.toJson(user));
}
在我的控制器中调用mailerClient.send(email)
会导致引发以下异常:
[error] a.a.ActorSystemImpl - Uncaught fatal error from thread [application-akka.actor.default-dispatcher-2] shutting down ActorSystem [application]
java.lang.NoSuchMethodError: play.api.PlayConfig.getOptional(Ljava/lang/String;Lplay/api/ConfigLoader;)Lscala/Option;
at play.api.libs.mailer.CommonsMailer.instance$lzycompute(MailerPlugin.scala:92)
at play.api.libs.mailer.CommonsMailer.instance(MailerPlugin.scala:88)
at play.api.libs.mailer.CommonsMailer.send(MailerPlugin.scala:109)
at play.api.libs.mailer.MailerClient$class.send(MailerPlugin.scala:44)
at play.api.libs.mailer.CommonsMailer.send(MailerPlugin.scala:83)
at controllers.api.UserController.create(UserController.java:57)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$6$$anonfun$apply$6.apply(Routes.scala:242)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$6$$anonfun$apply$6.apply(Routes.scala:242)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
我使用的是Mailer版本3.0.1,我的build.sbt如下:
name := """API"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.7"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"mysql" % "mysql-connector-java" % "5.1.16",
"de.svenkubiak" % "jBCrypt" % "0.4",
"com.typesafe.play" %% "play-mailer" % "3.0.1"
)
我在别处找不到类似的问题请将您的版本更改为5.0.0-M1
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"mysql" % "mysql-connector-java" % "5.1.38",
"de.svenkubiak" % "jBCrypt" % "0.4",
"com.typesafe.play" %% "play-mailer" % "5.0.0-M1"
)
我刚从几分钟前就解决了这个问题,你迟到了,比如说1个版本,有4.0.0-M1和4.0.0的新版本,用于play 2.4,但5.0.0-M1用于play 2.5,play mailer从今天开始更新了大约26天
编辑:
版本5.0.0发布您可以使用它:
"com.typesafe.play" %% "play-mailer" % "5.0.0"
你使用的插件版本是什么?我使用的是3.0.1,我更新了问题来显示它。他们发布了一个新版本。我使用
“com.typesafe.play”%”play-mailer_2.11“%”5.0.0-M1“
,它可以工作。
"com.typesafe.play" %% "play-mailer" % "5.0.0"