我有一个 Play Framework 应用程序,版本 2.4 迁移到 2.5 ,一切都搞定了!但使用 在我的自定义操作中引发错误 body 解析器 ,

 def isAuthenticatedAsync[A](parser: BodyParser[A])(f: => Long => Request[A] => Future[Result]) = { 
Security.Authenticated(userId, onUnauthorized) { user => 
  Action.async(parser)(request => f(user)(request)) 
} 

}

用这个:
def upload = isAuthenticatedAsync(parse.maxLength(5 * 1024 * 1024, parse.multipartFormData)) { userId => request => 
//Logger.info(s"") 
request.body match { 
  case Left(MaxSizeExceeded(length)) => Future(BadRequest(Json.toJson(ResultTemp("Your file is too large, we accept just " + length + " bytes!")))) 
  case Right(multipartForm) => 

抛出错误:
could not find implicit value for parameter mat: akka.stream.Materializer 

[错误] def upload = Action.async(parse.maxLength(5 * 1024 * 1024, parse.multipartFormData)) { request =>

请您参考如下方法:

看起来你需要在你的 Controller 中注入(inject)一个物化器

class MyController @Inject() (implicit val mat: Materializer) {} 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!