ich durch die Scalatra "Handling JSON" tutorial für Scalatra 2.4 werde, und ich bin immer ein "NoSuchMethodError":JacksonJsonSupport Eigenschaft bewirkt eine NoSuchMethodError für initialize()
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)
ich die "mit JacksonJsonSupport" hinzugefügt, zusammen mit die "geschützte implizite Lazy val jsonFormats: Formats = DefaultFormats" direkt nach der Controller-Signatur. . Ich habe die beiden Importe an der Spitze, Import org.json4s {DefaultFormats, Formate} und Import org.scalatra.json._
Und für die Vollständigkeit, meine ScalatraBootstrap hat keine Paketdeklaration, und ist wie folgt:
import com.tutorial._
import org.scalatra._
import javax.servlet.ServletContext
class ScalatraBootstrap extends LifeCycle {
override def init(context: ServletContext) {
context.mount(new FlowersController, "/*")
}
}
ich fügte hinzu, "org.scalatra" %% "scalatra-json" % ScalatraVersion und "org.json4s" %% "json4s-jackson" % "3.3.0" und neu gestartet sbt build.scala. Was vermisse ich?
Hat nicht für mich funktioniert ... das ist ein seltsamer Fehler, der schwer zu finden ist. Es scheint auch kein allgemeines Problem zu sein. –