我运行了一个scala / play 2.0.4应用程序。在本地一切正常,我可以通过"play run“启动服务。现在,我想将应用程序导出到prod服务器。我使用播放命令"dist",并解压服务器上的文件。但是如果我启动这个服务,我会在几个操作上得到一个异常:
play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[RuntimeException: java.lang.NoSuchMethodError: com..webapp.services.Backend.getCitiesByName(Ljava/lang/String;)Ljava/util/List;]]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
at akka.actor.Actor$class.apply(Actor.scala:318) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at play.core.ActionInvoker.apply(Invoker.scala:113) [play.play_2.9.1-play_2.9.1-2.0.4.jar:2.0.4]
at akka.actor.ActorCell.invoke(ActorCell.scala:626) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at akka.dispatch.Mailbox.run(Mailbox.scala:179) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:516) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:259) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1479) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]
at akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) [com.typesafe.akka.akka-actor-akka-actor-2.0.2.jar:2.0.2]未找到的方法实际上在可用的代码中,并且在我的本地安装上有效(通过play run)。它是来自Scala项目依赖项的类和方法(作为jar包含在lib中)。
在使用"dist“之前,我清理了所有的引用并构建了所有的依赖项。
谁能给我一个提示,在哪里搜索这个错误?将会有很大的帮助!
发布于 2012-12-07 17:05:01
发生的情况是,依赖的JAR文件没有进入您的发行版ZiP文件
为了让play将依赖的JAR添加到您的发行包中,您需要将其添加到project/Build.scala文件中。查看有问题的依赖项在Maven上是否可用,并将其添加到Build.scala文件中,如下所示:
val appDependencies = Seq(
// Add your project dependencies here,
"mysql" % "mysql-connector-java" % "5.1.20",
)https://stackoverflow.com/questions/13723553
复制相似问题