5

i'm calling a webservice using play framework 2.1 which takes longer than 10s. because of that i always receive the following error:

play.api.Application$$anon$1: Execution exception[[TimeoutException: Futures timed out after [10000 milliseconds]]]
    at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.0]
    at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.0]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:132) [play_2.10.jar:2.1.0]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:128) [play_2.10.jar:2.1.0]
    at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0]
    at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0]
java.util.concurrent.TimeoutException: Futures timed out after [10000 milliseconds]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:96) ~[scala-library.jar:na]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:58) ~[scala-library.jar:na]
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:86) ~[scala-library.jar:na]
    at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:86) ~[scala-library.jar:na]

how can i increase the timeout value?

i tried to change the values of:

promise.akka.actor.typed.timeout
play.akka.actor.typed.timeout

but without success...

Thanks in advance for the help

4

3 に答える 3

2

2.3 で修正されたように見えますが、2.2 ビルドのいずれにもポートを戻す予定はありません。

    javaOptions in Test += "-Dtest.timeout=10000"

私は2.2を使用しているので、これはうまくいきませんが、2.3の人にはうまくいくことを願っています

于 2015-03-17T17:30:43.007 に答える
2

残念ながら、フレームワークにハードコーディングされています... https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/libs/concurrent/を参照してくださいPromise.scala#L266

それについての問題はすでに開かれているようです: https://github.com/playframework/Play20/issues/1002

于 2013-05-15T09:52:23.153 に答える
0

単体テストを作成する場合は、このようにします。

@Test
public void testInServer() {
    running(testServer(3333), new Runnable() {
        public void run() {
            assertThat(
                WS.url("http://localhost:3333").get().get(timeout).getStatus()
            ).isEqualTo(OK);
        }
    });
}
于 2015-09-10T01:51:44.417 に答える