0

我有一个 scala / play 2.0.4 应用程序正在运行。本地一切都很好,我可以通过“play run”启动服务。现在我想将应用程序导出到产品服务器。我使用播放命令“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]

未找到的方法实际上在可用代码中,并且适用于我的本地安装(通过播放运行)。它是来自 Scala 项目的依赖项的类和方法(作为 jar 包含在 lib 中)。

在使用“dist”之前,我清理了所有引用并构建了所有依赖项。

谁能给我提示在哪里搜索此错误?真的会有很大的帮助!

4

1 回答 1

0

发生的事情是依赖的 JAR 文件没有进入您的分发 ZiP 文件

为了将依赖的 JAR 添加到您的分发包中,您需要将其添加到 project/Build.scala 文件中。查看相关依赖项在 Maven 上是否可用,并将其添加到 Build.scala 文件中,如下所示:

val appDependencies = Seq(
      // Add your project dependencies here,
      "mysql" % "mysql-connector-java" % "5.1.20",
 )
于 2012-12-07T09:05:00.970 回答