jackson-module-scala (play): registerModule(DefaultScalaModule): found DefaultScalaModule.type; required: databind.Module

StackOverflow https://stackoverflow.com/questions/21597532

Question

I am trying to un/marshall json in a play app, by using jackson-module-scala and their example:

val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)

I included these libraries in Build.scala

"com.fasterxml" % "jackson-module-scala" % "1.9.3",
"com.fasterxml.jackson.core" % "jackson-databind" % "2.3.0",

and imported:

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModule

However, when I run the Play App, I get the following error:

[error]  found   : com.fasterxml.jackson.module.scala.DefaultScalaModule.type
[error]  required: com.fasterxml.jackson.databind.Module
[error]     mapper.registerModule(DefaultScalaModule)


play.PlayExceptions$CompilationException: Compilation error[type mismatch;
 found   : com.fasterxml.jackson.module.scala.DefaultScalaModule.type
 required: com.fasterxml.jackson.databind.Module]
    at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfun$apply$16.apply(PlayReloader.scala:304) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfun$apply$16.apply(PlayReloader.scala:304) ~[na:na]
    at scala.Option.map(Option.scala:145) ~[scala-library-2.10.3.jar:na]
    at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14.apply(PlayReloader.scala:304) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14.apply(PlayReloader.scala:298) ~[na:na]
    at scala.Option.map(Option.scala:145) ~[scala-library-2.10.3.jar:na]

Any help would be greatly appreciated.

Was it helpful?

Solution

Was finally able to figure it out.

I was trying to get the latest version of jackson-module-scala; the latest version seemed to be 1.9.3 by checking: http://mvnrepository.com/artifact/com.fasterxml/jackson-module-scala

However the proper place to look had the proper newest version 2.3.0: http://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-scala_2.10

It was fixed by changing the Build.scala to:

...
"com.fasterxml" % "jackson-module-scala_2.10" % "2.3.0",
"com.fasterxml.jackson.core" % "jackson-databind" % "2.3.0",
...

or even better use "%%" (for automatic scala version resolution; don't need to add "_scala.ver"):

...
"com.fasterxml" %% "jackson-module-scala" % "2.3.0",
"com.fasterxml.jackson.core" % "jackson-databind" % "2.3.0",
...
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top