Reputation: 373
I hope it's the last errors I will encounter migrating to Play! 2.1.
All my controllers returns throw an error using compile
command.
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>
I don't understand why play! 2.1 want me to use scala api instead of java api.
Here is my build.scala
file :
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)
)
}
EDIT :
Using run
command I have this exception :
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]
SOLUTION :
Delete your project. Create a new one.
Upvotes: 0
Views: 890
Reputation: 373
The solution is :
So... is that called a migration ? Play! 2.1 is worst release I've seen :(
Upvotes: 0
Reputation: 5962
scala should handle the type conversion from java list to scala list. So I think you may be looking at the list type instead of the null where expects type user. Is the last field in the below statement returning 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>
Upvotes: 1
Reputation: 1636
mainLang = JAVA
is no longer required in Play! 2.1: the dependencies java*
are enough for Play! to identify your main application language.
The rest of your file seems correct. Try run play clean clean-all compile
to make it work.
Upvotes: 1