2015-10-20 11 views
5

既存のコードをplay frameworkと統合しようとしています。私は1.3.6 minimal Typesafe Activator packageをダウンロードしました。私はplay-javaプロジェクトを作成し、これらの線と build.sbtファイル修正:私は、Application.javaで私の既存のクラスの1への参照を追加PlayframeworkのAkkaバージョン

resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository" 

libraryDependencies ++= Seq(
    "com.xxx" % "messages" % "0.0.1-SNAPSHOT" 
) 

を。 activator runを実行したとき、手動で追加してコードを正常にコンパイルしたものを含め、多数のjarをダウンロードしました。それが実行しようとすると

、私はエラーを取得:

$ ./activator run 
[info] Loading project definition from <APP_ROOT>/project 
[info] Set current project to my-proj (in build file:<APP_ROOT>) 

--- (Running the application, auto-reloading is enabled) --- 

java.lang.ClassNotFoundException: akka.event.slf4j.Slf4jLoggingFilter 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at akka.actor.ReflectiveDynamicAccess$$anonfun$getClassFor$1.apply(DynamicAccess.scala:67) 
    at akka.actor.ReflectiveDynamicAccess$$anonfun$getClassFor$1.apply(DynamicAccess.scala:66) 
    at scala.util.Try$.apply(Try.scala:192) 
    at akka.actor.ReflectiveDynamicAccess.getClassFor(DynamicAccess.scala:66) 
    at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:84) 
    at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:612) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:143) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:127) 
    at play.api.libs.concurrent.ActorSystemProvider$.start(Akka.scala:291) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:205) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1.apply(DevServerStart.scala:61) 
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21) 
    at play.core.server.DevServerStart$.mainDev(DevServerStart.scala:60) 
    at play.core.server.DevServerStart$.mainDevHttpMode(DevServerStart.scala:50) 
    at play.core.server.DevServerStart.mainDevHttpMode(DevServerStart.scala) 
    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:223) 
    at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.devModeServer$lzycompute$1(PlayRun.scala:74) 
    at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.play$sbt$run$PlayRun$$anonfun$$anonfun$$anonfun$$devModeServer$1(PlayRun.scala:74) 
    at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:100) 
    at play.sbt.run.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$2$$anonfun$apply$3.apply(PlayRun.scala:53) 
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) 

は、バージョン番号を見て、私は活性化剤は2.3を使用している間、我々は、アッカ・俳優2.4.0-RC2を使用しているため、これがあると思います。アクチベータに2.4を使用させる方法はありますか?または、アクチベータの新しいリリースを待つ必要がありますか?

私はlibraryDependencies

"com.typesafe.akka" % "akka-actor_2.11" % "2.4.0-RC2" 

を追加しようとしたが、それは立ち退かされ、依存関係に関する警告を与え、同じクラスのエラーが見つかりません。

私はplayactivatorの間のやりとりにあまり慣れていません。多くの追加作業を追加せずにその1つを取り除くことによってこの作業を行う方法がある場合は、それも問題ありません。

答えて

7

バージョンに問題はないと思います。それはSlf4jの問題のようです。

built.sbtにアッカ・SLF4Jを追加してください:

libraryDependencies += "com.typesafe.akka" %% "akka-slf4j" % "2.3.6" 

更新

をアッカの俳優のためには、あなたがSLF4Jの2.4.0バージョンを追加する必要があります2.4.0

libraryDependencies += "com.typesafe.akka" %% "akka-slf4j" % "2.4.0" 
+0

その行は役に立たなかった。それがなくても、私は出力の中でこれを見ています: '[info] Resolving com.typesafe.akka#akka-slf4j_2.11; 2.3.13 ... 'これはakka-slf4jが既にロードされていることを示します。後のバージョンも)。この行: 'libraryDependencies + =" com.typesafe.akka "%%" akka-slf4j "%" 2.4.0 "'、それは動作させました。また、2.3.13 akka-slf4jの撤回に関する警告もありました。 –

+0

コメントをいただきありがとうございます - 後で見る人のための答えに更新しました –

+0

確かにakka-slf4jバージョンは一致する必要があります...なぜこれがアクチベータテンプレートで展開されるのか分からないのでしょうか? .. – matanster