0

我希望这是我在迁移到 Play 时遇到的最后一个错误!2.1。

compile我所有的控制器返回都使用命令引发错误。

return ok(createOrUpdate.render(Secured.getConnectedUser(), getCustomers(), User.build(user)));

[error]   required: User,scala.collection.immutable.List<User>,User
[error]   found: User,java.util.List<User>,<null>

不明白为什么要玩!2.1 想让我使用scala api 而不是java api。

这是我的build.scala文件:

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "webapp-stativiz"
    val appVersion      = "1.0-SNAPSHOT"

    val appDependencies = Seq(
      javaCore,
      javaJdbc,
      javaEbean,
      "org.mongodb" % "mongo-java-driver" % "2.10.1",
      "pdf" % "pdf_2.9.1" % "0.3",
      "commons-io" % "commons-io" % "1.3.2",
      "commons-codec" % "commons-codec" % "1.7"
    )

    val main = play.Project(appName, appVersion, appDependencies, mainLang = JAVA).settings(
          resolvers += Resolver.url("My GitHub Play Repository", url("http://www.joergviola.de/releases/"))(Resolver.ivyStylePatterns) 
    )

}

编辑 :

使用run命令我有这个例外:

sbt.PlayExceptions$CompilationException: Compilation error[error: method render in class createOrUpdate cannot be applied to given types;]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
        at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:349) ~[na:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:346) ~[na:na]
        at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]

解决方案 :

删除您的项目。创建一个新的。

4

3 回答 3

1

scala 应该处理从 java 列表到 scala 列表的类型转换。所以我认为您可能正在查看列表类型而不是预期类型用户的 null。以下语句中的最后一个字段是否返回 null?

return ok(createOrUpdate.render(Secured.getConnectedUser(), getCustomers(), User.build(user)));

[error]   required: User,scala.collection.immutable.List<User>,User
[error]   found: User,java.util.List<User>,<null>
于 2013-03-18T12:10:09.330 回答
1

mainLang = JAVAPlay 中不再需要!2.1:对 Play 的依赖java*就足够了!识别您的主要应用程序语言。

您文件的其余部分似乎正确。尝试运行play clean clean-all compile以使其工作。

于 2013-03-18T11:27:01.653 回答
0

解决方案是:

  1. 创建一个新项目
  2. 将您的文件放入(应用程序、公共...文件夹)
  3. 删除旧项目

那么……这叫迁移吗?玩!2.1 是我见过的最糟糕的版本 :(

于 2013-03-18T14:04:36.390 回答