无法使用play框架应用程序注入器来注入WSClient

时间:2017-07-13 08:31:12

标签: java scala playframework playframework-2.0 playframework-2.6

我正在使用play 2.6.0和scala 2.11.8

我一直在使用游戏WSClient,但没有相同配置的问题:

application.conf:

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   找到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   找到play.api.libs.ws.WSClient

引起:

  

java.lang.NumberFormatException:format error 600000

有没有人知道为什么会这样?没有找到任何可以帮助我上网的东西,我试过......

1 个答案:

答案 0 :(得分:0)

我今天遇到了这个问题并发现它不是this issue的副本,而是属性格式错误。从Play 2.6开始,必须使用值和单位(即10000毫秒)指定WS属性。因此,您的属性将更改为更类似于以下内容:

play.ws.connection.timeout = 10000ms