Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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
java.lang.NoSuchFieldException:使用play框架处理嵌入式MongoDB_Mongodb_Scala_Testing_Playframework - Fatal编程技术网

java.lang.NoSuchFieldException:使用play框架处理嵌入式MongoDB

java.lang.NoSuchFieldException:使用play框架处理嵌入式MongoDB,mongodb,scala,testing,playframework,Mongodb,Scala,Testing,Playframework,我试图在测试中启用内存中的mongodb,我正在使用它来完成这项工作 class controllerSpec extends PlaySpec with GuiceOneAppPerTest with Injecting with BeforeAndAfterAll with MongoEmbedDatabase{ //declares a variable which will hold the reference to running mongoDB Instance var m

我试图在测试中启用内存中的mongodb,我正在使用它来完成这项工作

class controllerSpec extends PlaySpec with GuiceOneAppPerTest with Injecting with BeforeAndAfterAll with MongoEmbedDatabase{

  //declares a variable which will hold the reference to running mongoDB Instance
  var mongoInstance: MongodProps = null
  // Start In-memory Mongo instance in before statement
  override def beforeAll(): Unit =
    try{
      val rnd = new scala.util.Random
      val range = 12000 to 36000
      val portNum = range(rnd.nextInt(range length))
      mongoInstance = mongoStart(portNum) } //Try starting mongo on random port number
    catch { case ex:Exception => } // Handle exception In case local mongo is running//code to run before all tests starts
  override def afterAll(): Unit = mongoStop(mongoInstance)
但我有一个错误:

[info] controllerSpec:
java.lang.NoSuchFieldException: handle
        at java.base/java.lang.Class.getDeclaredField(Class.java:2411)
        at de.flapdoodle.embed.process.runtime.Processes.windowsProcessId(Processes.java:109)
        at de.flapdoodle.embed.process.runtime.Processes.access$200(Processes.java:51)
        at de.flapdoodle.embed.process.runtime.Processes$PidHelper$2.getPid(Processes.java:209)
  | => rat de.flapdoodle.embed.process.runtime.Processes.processId(Processes.java:72)
        at de.flapdoodle.embed.process.runtime.ProcessControl.<init>(ProcessControl.java:64)
        at de.flapdoodle.embed.process.runtime.ProcessControl.start(ProcessControl.java:205)
        at de.flapdoodle.embed.process.runtime.AbstractProcess.<init>(AbstractProcess.java:98)
        at de.flapdoodle.embed.mongo.AbstractMongoProcess.<init>(AbstractMongoProcess.java:53)
        at de.flapdoodle.embed.mongo.MongodProcess.<init>(MongodProcess.java:50)
        at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:44)
        at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:34)
        at de.flapdoodle.embed.process.runtime.Executable.start(Executable.java:101)
        at com.github.simplyscala.MongoEmbedDatabase.mongoStart(MongoEmbedDatabase.scala:26)
        at com.github.simplyscala.MongoEmbedDatabase.mongoStart$(MongoEmbedDatabase.scala:22)
        at controllersSpec.ssmServiceSpec.ssmControllerSpec.mongoStart(ssmControllerSpec.scala:22)
        at controllersSpec.ssmServiceSpec.ssmControllerSpec.beforeAll(ssmControllerSpec.scala:32)
        at org.scalatest.BeforeAndAfterAll.liftedTree1$1(BeforeAndAfterAll.scala:212)
        at org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:210)
        at org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:208)
        at controllersSpec.ssmServiceSpec.ssmControllerSpec.run(ssmControllerSpec.scala:22)
        at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:317)
        at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:510)
        at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)

[info]控制器规格:
java.lang.NoSuchFieldException:句柄
位于java.base/java.lang.Class.getDeclaredField(Class.java:2411)
位于de.flapdoodle.embed.process.runtime.processs.windowsProcessId(processs.java:109)
位于de.flapdoodle.embed.process.runtime.processs.access$200(processs.java:51)
位于de.flapdoodle.embed.process.runtime.processs$PidHelper$2.getPid(processs.java:209)
|=>rat de.flapdoodle.embed.process.runtime.processs.processId(processs.java:72)
位于de.flapdoodle.embed.process.runtime.ProcessControl.(ProcessControl.java:64)
位于de.flapdoodle.embed.process.runtime.ProcessControl.start(ProcessControl.java:205)
位于de.flapdoodle.embed.process.runtime.AbstractProcess.(AbstractProcess.java:98)
位于de.flapdoodle.embed.mongo.AbstractMongoProcess。(AbstractMongoProcess.java:53)
位于de.flapdoodle.embed.mongo.MongodProcess.(MongodProcess.java:50)
位于de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:44)
位于de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:34)
位于de.flapdoodle.embed.process.runtime.Executable.start(Executable.java:101)
位于com.github.simplyscala.MongoEmbedDatabase.mongoStart(MongoEmbedDatabase.scala:26)
位于com.github.simplyscala.MongoEmbedDatabase.mongostat$(MongoEmbedDatabase.scala:22)
at控制器规范ssmServiceSpec.ssmControllerSpec.mongoStart(ssmControllerSpec.scala:22)
在之前的controllersSpec.ssmServiceSpec.SSMControllersSpec.处(SSMControllersSpec.scala:32)
在org.scalatest.BeforeAndAfterAll.liftedTree1$1(BeforeAndAfterAll.scala:212)
在org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:210)上
在org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:208)
在controllerspec.ssmServiceSpec.ssmControllerSpec.run(ssmControllerSpec.scala:22)
位于org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:317)
位于org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:510)
在sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
位于java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
位于java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
位于java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
位于java.base/java.lang.Thread.run(Thread.java:834)
这和之前和之后有什么关系吗?如果我做错了什么,请告诉我,谢谢