JacksonJsonSupport trait causes a NoSuchMethodError for class.initialize()

Sett 17 ganger
Hopp til første uleste melding

Scott Danzig

ulest,
19. juni 2016, 08:00:1219.06.2016
til scalatra-user
I'm going through the Scalatra "Handling JSON" tutorial for 2.4, and I'm getting a "NoSuchMethodError":

Exception in thread "main" java.lang.NoSuchMethodError: org.scalatra.json.JacksonJsonSupport$class.initialize(Lorg/scalatra/json/JacksonJsonSupport;Ljava/lang/Object;)V
at com.tutorial.FlowersController.initialize(FlowersController.scala:8)
at com.tutorial.FlowersController.initialize(FlowersController.scala:8)
at org.scalatra.ScalatraServlet$class.init(ScalatraServlet.scala:123)
at com.tutorial.FlowersController.init(FlowersController.scala:8)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:595)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:385)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:862)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:300)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1341)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1334)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:744)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:497)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:154)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:357)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60)
at org.eclipse.jetty.server.Server.doStart(Server.java:324)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.runner.Runner.run(Runner.java:509)
at org.eclipse.jetty.runner.Runner.main(Runner.java:557)

I added the "with JacksonJsonSupport", along with the "protected implicit lazy val jsonFormats: Formats = DefaultFormats" just after the controller signature.  I have the two imports at the top, import org.json4s.{DefaultFormats, Formats} and import org.scalatra.json._

I added "org.scalatra" %% "scalatra-json" % ScalatraVersion, and "org.json4s" %% "json4s-jackson" % "3.3.0", to build.scala and restarted sbt.  What am I missing?

Scott Danzig

ulest,
19. juni 2016, 12:19:0319.06.2016
til scalatra-user
Figured it out.  For whatever reason, doing an sbt clean fixed it.  Restarting sbt (many times) apparently wasn't enough.
Svar alle
Svar til forfatter
Videresend
0 nye meldinger