0

ここに私のコードがあります -

def sendAcceptInvitationMail(invitation: Invitation) {
  val signupLink = Props.get("base.url").openOr("http://localhost:8080") + "/accounts/signup?code="+invitation.code.is
  S.eval(<lift:embed what="/templates-hidden/emails/accept_invitation">
            <lift:bind-at name="name">{invitation.name.is}</lift:bind-at>
            <lift:bind-at name="link"><a href={signupLink}>{signupLink}</a></lift:bind-at>
        </lift:embed>) match {
    case Full(msg) =>
      MailHelper.sendMail((invitation.email.is, invitation.name.is), S.?("subject.invitation.sent"), msg, MimeType.MIME_HTML)
      debug("Accept invitation mail sent for: "+invitation.email.is)

    case _ => warn("Invitation Accept Email not sent to: "+invitation.email.is+". Problem preparing message")
  }
}

この例外が発生しています。

Message: java.lang.InstantiationException: com.lgigs.admin.view.Admin
java.lang.Class.newInstance0(Class.java:357)
java.lang.Class.newInstance(Class.java:325)
net.liftweb.http.Templates$$anonfun$lookForClasses$1$$anonfun$apply$9.apply(Templates.scala:264)
net.liftweb.http.Templates$$anonfun$lookForClasses$1$$anonfun$apply$9.apply(Templates.scala:263)
net.liftweb.common.Full.flatMap(Box.scala:493)
net.liftweb.http.Templates$$anonfun$lookForClasses$1.apply(Templates.scala:262)
net.liftweb.http.Templates$$anonfun$lookForClasses$1.apply(Templates.scala:260)
scala.Function1$$anonfun$andThen$1.apply(Function1.scala:49)
scala.collection.immutable.Stream.flatMap(Stream.scala:217)
net.liftweb.util.ListHelpers$class.first(ListHelpers.scala:137)
net.liftweb.util.Helpers$.first(Helpers.scala:34)
net.liftweb.http.Templates$.lookForClasses(Templates.scala:259)
net.liftweb.http.Templates$.findRawTemplate(Templates.scala:245)
net.liftweb.http.Templates$.apply(Templates.scala:85)
net.liftweb.http.DefaultRoutines$.rawResBundle(DefaultRoutines.scala:43)
net.liftweb.http.DefaultRoutines$.net$liftweb$http$DefaultRoutines$$resBundleFor(DefaultRoutines.scala:59)
net.liftweb.http.DefaultRoutines$$anonfun$3.apply(DefaultRoutines.scala:104)
net.liftweb.http.DefaultRoutines$$anonfun$3.apply(DefaultRoutines.scala:101)
net.liftweb.common.Full.flatMap(Box.scala:493)
net.liftweb.http.DefaultRoutines$.resourceForCurrentReq(DefaultRoutines.scala:101)
net.liftweb.http.LiftRules$$anon$13$$anonfun$$init$$14$$anonfun$apply$14.apply(LiftRules.scala:785)
net.liftweb.http.LiftRules$$anon$13$$anonfun$$init$$14$$anonfun$apply$14.apply(LiftRules.scala:785)
net.liftweb.http.S$class.resourceBundles(S.scala:884)
net.liftweb.http.S$.resourceBundles(S.scala:48)
net.liftweb.http.S$class.resourceBundles(S.scala:878)
net.liftweb.http.S$.resourceBundles(S.scala:48)
net.liftweb.http.S$class.$qmark(S.scala:928)
net.liftweb.http.S$.$qmark(S.scala:48)
com.lgigs.admin.snippet.Admin.sendAcceptInvitationMail$1(Admin.scala:129)
com.lgigs.admin.snippet.Admin$$anonfun$save$1$2.apply(Admin.scala:148)
com.lgigs.admin.snippet.Admin$$anonfun$save$1$2.apply(Admin.scala:141)
scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.

私がデバッグしたところ、リソースからプロパティを読み取っているときに、S.?('subject.invitation.sent')この例外がスローされることがわかりました。しかし、私は他の多くのスニペットで同じ関数呼び出しを使用しており、例外はありません。これには助けが必要です。

4

1 に答える 1

1

パッケージ内のアイテムのほとんどは、S有効なセッションを利用できる必要があり、通常は Http 要求と同じスレッドでアクセスする必要があります。あなたMailHelperが書いたものですか?リフトはアクターを介して非同期的に発生することを知っているMailer.sendMailので、何か関係があるかもしれません。

まだ行っていない場合は、翻訳を以前に取得することをお試しください。何かのようなもの:

case Full(msg) =>
      val i18nConfirmation = S.?("subject.invitation.sent")
      MailHelper.sendMail((invitation.email.is, invitation.name.is), i18nConfirmation, msg, MimeType.MIME_HTML)
      debug("Accept invitation mail sent for: "+invitation.email.is)
于 2013-02-22T14:18:57.033 に答える