简体   繁体   中英

scala play keeps throwing InvocationTargetException

I'm trying to develop simple web application using activator and scala play. It worked really fine, however when I tried to add some external JAR into lib/ directory, the following exception is thrown. Even though I don't import anything from it.

Any clues? I tried sbt clean and deleting target/ and restarting activator, but nothing has helped.

Setting up Play fork run ... (use Ctrl+D to cancel)
Play fork run has failed due to:
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at play.runsupport.Reloader$.startDevMode(Reloader.scala:197)
    at play.forkrun.ForkRun$.startServer(ForkRun.scala:82)
    at play.forkrun.ForkRun.run(ForkRun.scala:173)
    at play.forkrun.ForkRun$$anonfun$settingUp$1.applyOrElse(ForkRun.scala:162)
    at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
    at play.forkrun.ForkRun.aroundReceive(ForkRun.scala:148)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
    at akka.actor.ActorCell.invoke(ActorCell.scala:487)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)
    at akka.dispatch.Mailbox.run(Mailbox.scala:221)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:231)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.pollAndExecAll(ForkJoinPool.java:1253)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1346)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
    at play.core.ReloadableApplication.<init>(ApplicationProvider.scala:100)
    at play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:319)
    at play.core.server.NettyServer$$anonfun$mainDev$1.apply(NettyServer.scala:318)
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
    at play.core.server.NettyServer$.mainDev(NettyServer.scala:317)
    at play.core.server.NettyServer$.mainDevHttpMode(NettyServer.scala:313)
    at play.core.server.NettyServer.mainDevHttpMode(NettyServer.scala)
    ... 20 more

Looks like you added to lib/ either:

  • another, binary-incompatible version of scala-library
  • or a jar built for an incompatible version of Scala, for instance your project is configured for Scala 2.11.6, and you've added a jar built for Scala 2.10

I would recommend you use managed dependencies instead of using lib/ , see:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM