私はPlay Framework 2.3を使用して実装されたRest APIを使用しています。私は結果を生成するためにAkkaの俳優を使用するいくつかのエンドポイントを持っています、そして、私はこのエラーのために残念なことにそれらをユニットテストすることができました。他のエンドポイントは正常にテストされます。テストを実行するには、私は、fakeApplicationオブジェクトのようなものを使用しますjava.lang.IllegalStateException:閉じる後にClosableLazy値を取得できません
@BeforeClass
public static void initResources(){
Helpers.start(getFakeApplicationInstance());
}
@AfterClass
public static void cleanupResources(){
Helpers.stop(getFakeApplicationInstance());
}
public static FakeApplication getFakeApplicationInstance() {
if(fakeApp == null)
fakeApp = Helpers.fakeApplication(TestUtil.testSettings(), new GlobalCommon());
return fakeApp;
}
@Test
public void test() {
running(testServer(3333, getFakeApplicationInstance()),() -> {
// test go here
}));
}
を私はfakeApplicationがakkaSystemと連携んかどうかはわかりませんけど、不足しているものがあるように思えます。スタックトレースは次のとおりです。
Test rest.RestItemTest.marshalRoomDetails failed: java.lang.IllegalStateException: Can't get ClosableLazy value after it has been closed, took 7.732 sec
[error] at play.core.ClosableLazy.get(ClosableLazy.scala:49)
[error] at play.api.libs.concurrent.AkkaPlugin.applicationSystem(Akka.scala:71)
[error] at play.api.libs.concurrent.Akka$$anonfun$system$1.apply(Akka.scala:29)
[error] at play.api.libs.concurrent.Akka$$anonfun$system$1.apply(Akka.scala:29)
[error] at scala.Option.map(Option.scala:146)
[error] at play.api.libs.concurrent.Akka$.system(Akka.scala:29)
[error] at play.api.libs.concurrent.Akka.system(Akka.scala)
[error] at play.libs.Akka.system(Akka.java:25)
[error] at utils.GlobalCommonTest.onStart(GlobalCommonTest.java:186)
[error] at utils.APIGlobalTest.onStart(APIGlobalTest.java:16)
[error] at play.core.j.JavaGlobalSettingsAdapter.onStart(JavaGlobalSettingsAdapter.scala:22)
[error] at play.api.GlobalPlugin.onStart(GlobalSettings.scala:220)
[error] at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
[error] at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
[error] at scala.collection.immutable.List.foreach(List.scala:381)
[error] at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
[error] at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
[error] at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
[error] at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
[error] at play.api.Play$.start(Play.scala:90)
[error] at play.api.Play.start(Play.scala)
[error] at play.test.Helpers.start(Helpers.java:470)
[error] at play.test.Helpers.running(Helpers.java:486)
私は俳優を利用するエンドポイントを呼び出すときにしか得られません。どんな助けや経験の共有も大歓迎です。