【问题标题】:Scala 2.13 migrationScala 2.13 迁移
【发布时间】:2021-09-29 23:23:54
【问题描述】:

我正在将 Play 2.8.8 项目从 Scala 2.12 迁移到 2.13。

我在播放路线文件中有一个非常奇怪的错误:

method right in class Either is deprecated (since 2.13.0): Either is now right-biased, use methods directly on Either

路由文件、生成的 Scala 路由文件或相关控制器中没有 .right 调用。

路线文件:

POST          /roles/:id        controllers.Authentication.api.RolesResource.addRoleToAccount(id:models.users.AccountId)
DELETE        /roles/:id        controllers.Authentication.api.RolesResource.removeRoleFromAccount(id:models.users.AccountId)
GET           /roles/:id        controllers.Authentication.api.RolesResource.getRolesForAccount(id:models.users.AccountId)

感谢您提供任何指导,这可能是此错误的根源。

【问题讨论】:

  • 你能把完整的错误分享给相关的代码行吗?
  • 错误可能在从routes 文件生成的Routes.scala 文件中。您是否清理并重新编译了项目?
  • 这个路由文件的每一行都有错误。当然,我清理了所有东西。我已经说过我也检查了生成的 Scala 路由文件。

标签: scala playframework scala-2.13


【解决方案1】:

我认为原因在于play.core.routing.GeneratedRouter 类。

从我的路由文件这个方法:

    (for {
a1 <- pa1.value.right
 a2 <- pa2.value.right}
      yield (a1, a2))
      .fold(badRequest, { case (a1, a2) => generator(a1, a2) })
  }

它包含对已弃用的.right 函数的调用。

【讨论】:

    猜你喜欢
    • 2019-08-08
    • 2021-04-24
    • 2020-05-05
    • 1970-01-01
    • 2019-12-21
    • 2022-01-10
    • 2020-02-22
    • 2019-12-19
    相关资源
    最近更新 更多