2016-06-19 3 views
1

私はScalatra 2.4 Scalatra "Handling JSON" tutorialを通じてつもりだ、と私は「NoSuchMethodError」を取得しています:JacksonJsonSupport形質は初期化のための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) 

私はと一緒に、「JacksonJsonSupportと」を追加しましたコントローラーの署名の直後に "暗黙的に保護されたlazy val jsonFormats:Formats = DefaultFormats"が追加されました。私は一番上にある2つの輸入を持っている、輸入org.json4s {DefaultFormats、フォーマット}およびインポートorg.scalatra.json._

万全を期すために、私のScalatraBootstrapにはパッケージ宣言を持っていないし、次のとおりです。

import com.tutorial._ 
import org.scalatra._ 
import javax.servlet.ServletContext 

class ScalatraBootstrap extends LifeCycle { 
    override def init(context: ServletContext) { 
    context.mount(new FlowersController, "/*") 
    } 
} 

"org.scalatra" %% "scalatra-json"%ScalatraVersion、 "org.json4s" %% "json4s-jackson"% "3.3.0"をbuild.scalaに追加し、sbtを再起動しました。私は何が欠けていますか?

答えて

0

「sbt clean」で作業しました。このチュートリアルでは、新しいjarファイルをダウンロードするためにsbtを再起動するだけで、うまくいきましたが、私の最初の試みは明らかに正しくはありませんでした。私が考えることができる唯一の違いは、私がDockerコンテナで最初の試みを実行していたことでした。そして、おそらくそれで完璧ではないものがありました。

+0

私のために働かなかった...これは追跡が難しい奇妙なバグです。どちらも共通の問題ではないようです。 –

関連する問題