无法使用播放框架应用注入器来注入 WSClient



>我使用 play 2.6.0 和 scala 2.11.8

我一直在使用 play 的WSClient,在相同的配置下没有问题:

应用程序:

play {
ws.timeout.connection = 600000
ws.timeout.idle = 600000
ws.timeout.request = 600000
}

现在我需要在我的测试中注入它的一个类将其作为依赖项。

它看起来像这样:

class TestClass extends FreeSpec with OneAppPerSuite {

implicit lazy val materializer: Materializer = app.materializer
// this line is failing
val ws: WSClient = app.injector.instanceOf[WSClient]
..
}

此时,测试已失败,并显示此错误:

1( 注入构造函数 java.lang.NumberFormatException 时出错: 格式错误 600000 at play.api.libs.ws.ahc.AsyncHttpClientProvider.(AhcWSModule.scala:40( 在 play.api.libs.ws.ahc.AsyncHttpClientProvider.class(AhcWSModule.scala:39( 同时定位 play.api.libs.ws.ahc.AsyncHttpClientProvider 而 locate play.shaded.ahc.org.asynchttpclient.AsyncHttpClient 对于 play.api.libs.ws.ahc.AhcWSClientProvider 的第一个参数。(AhcWSModule.scala:203( 在 play.api.libs.ws.ahc.AhcWSClientProvider.class(AhcWSModule.scala:203( 同时定位 play.api.libs.ws.ahc.AhcWSClientProvider 而 locate play.api.libs.ws.WSClient

引起:

java.lang.NumberFormatException: 格式错误 600000

有谁知道为什么会这样? 没有找到任何可以帮助我的东西,我尝试了...

我今天遇到了这个问题,发现它不是这个问题的重复,而是属性格式错误。从 Play 2.6 开始,必须同时使用值和单位(即 10000 毫秒(指定 WS 属性。因此,您的属性将更改为如下所示的内容:

play.ws.connection.timeout = 10000ms

最新更新