Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 播放规格2测试:ReactiveMongoPlugin错误_Mongodb_Scala_Playframework_Akka_Specs2 - Fatal编程技术网

Mongodb 播放规格2测试:ReactiveMongoPlugin错误

Mongodb 播放规格2测试:ReactiveMongoPlugin错误,mongodb,scala,playframework,akka,specs2,Mongodb,Scala,Playframework,Akka,Specs2,我正在使用Play框架、Akka Persistent actors和MongoDB 当我使用FakeApplication运行Specs2测试时,会抛出java.lang.ExceptionInInitializerError,原因如下: Caused by: @6md6ke2n9: ReactiveMongoPlugin Error at play.modules.reactivemongo.ReactiveMongoPlugin$.current(ReactiveMongoPlug

我正在使用Play框架、Akka Persistent actors和MongoDB

当我使用FakeApplication运行Specs2测试时,会抛出java.lang.ExceptionInInitializerError,原因如下:

Caused by: @6md6ke2n9: ReactiveMongoPlugin Error
    at play.modules.reactivemongo.ReactiveMongoPlugin$.current(ReactiveMongoPlugin.scala:83)
    at play.modules.reactivemongo.ReactiveMongoPlugin$.db(ReactiveMongoPlugin.scala:78)
    at models.daos.TaskDAO$.<init>(TaskDAO.scala:25)
    at models.daos.TaskDAO$.<clinit>(TaskDAO.scala)
自从我开始使用PersistentActor以来,就出现了这个问题。我不知道akka持久性和反应性mongo依赖之间是否存在冲突。以下是my build.sbt:

name := "fmcloud"

version := "0.1"

scalaVersion := "2.11.6"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

resolvers := ("Atlassian Releases" at "https://maven.atlassian.com/public/") +: resolvers.value

resolvers += Resolver.sonatypeRepo("snapshots")
resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/releases"

libraryDependencies ++= Seq(
  "javax.inject" % "javax.inject" % "1",
  "org.reactivemongo" %% "play2-reactivemongo" % "0.10.5.0.akka23",
  "net.codingwell" %% "scala-guice" % "4.0.0-beta5",
  "org.webjars" % "bootstrap" % "3.3.1",
  "org.webjars" % "angularjs" % "1.3.8",
  "org.webjars" % "angular-ui-bootstrap" % "0.12.0",
  "org.mockito" % "mockito-core" % "1.10.17" % "test",
  "com.mohiva" %% "play-silhouette-testkit" % "2.0" % "test",
  "com.mohiva" %% "play-silhouette" % "2.0",
  "org.json" % "json" % "20141113",
  "javax.websocket" % "javax.websocket-client-api" % "1.1",
  "org.glassfish.tyrus" % "tyrus-container-grizzly-client" % "1.4",
  "com.typesafe.akka" % "akka-testkit_2.11" % "2.3.10",
  "com.typesafe.akka" % "akka-persistence-experimental_2.11" % "2.3.10",
  "com.github.ironfish" %% "akka-persistence-mongo-casbah"  % "0.7.5" % "compile"
)
编辑:这是一个明智的想法问题。我更新了IntelliJ和Scala插件,现在没有ReactiveMongoPlugin错误。不幸的是,现在除了一个(涉及persistenctor)之外,所有测试用例都可以工作。 仍会抛出java.lang.ExceptionInInitializeError,但原因不同:

Caused by: java.lang.RuntimeException: There is no started application
at scala.sys.package$.error(package.scala:27)
    at play.api.Play$$anonfun$current$1.apply(Play.scala:71)
    at play.api.Play$$anonfun$current$1.apply(Play.scala:71)
    at scala.Option.getOrElse(Option.scala:121)
    at play.api.Play$.current(Play.scala:71)
    at models.daos.TaskDAO$.<init>(TaskDAO.scala:26)
    at models.daos.TaskDAO$.<clinit>(TaskDAO.scala)
    ... 19 more
原因:java.lang.RuntimeException:没有启动的应用程序
在scala.sys.package$.error处(package.scala:27)
在play.api.play$$anonfun$当前$1.apply(play.scala:71)
在play.api.play$$anonfun$当前$1.apply(play.scala:71)
位于scala.Option.getOrElse(Option.scala:121)
at play.api.play$.current(play.scala:71)
在models.daos.TaskDAO$(TaskDAO.scala:26)
位于models.daos.TaskDAO$(TaskDAO.scala)
... 还有19个

EDIT2:我注意到只有在使用持久参与者的TestActorRef时才会发生此错误。

是否要运行反应式mongo?这是单元测试还是集成测试?这是单元测试。我要reactivemongo运行。。我怎么检查?你想要反应式mongo runnning吗?这是单元测试还是集成测试?这是单元测试。我要reactivemongo运行。。我怎么检查?你想要反应式mongo runnning吗?这是单元测试还是集成测试?这是单元测试。我要reactivemongo运行。。我怎么检查?
Caused by: java.lang.RuntimeException: There is no started application
at scala.sys.package$.error(package.scala:27)
    at play.api.Play$$anonfun$current$1.apply(Play.scala:71)
    at play.api.Play$$anonfun$current$1.apply(Play.scala:71)
    at scala.Option.getOrElse(Option.scala:121)
    at play.api.Play$.current(Play.scala:71)
    at models.daos.TaskDAO$.<init>(TaskDAO.scala:26)
    at models.daos.TaskDAO$.<clinit>(TaskDAO.scala)
    ... 19 more