0

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」を使用する前に、すべての参照を消去し、すべての依存関係を構築しました。

このエラーを検索する場所を誰かに教えてもらえますか? 本当に助かります!

4

1 に答える 1

0

何が起こっているかというと、依存する 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",
 )
于 2012-12-07T09:05:00.970 に答える