尝试访问注入实例列表时出错(playframework / scala / guice)

时间:2017-07-15 02:00:10

标签: java scala playframework guice scalatest

我有一个具有WSClient依赖性和配置依赖性的api服务:

Class MyApiService @Inject() (wsclient: WSClient, conf: Configuration) {...}

现在我有一些动物对象依赖于这个api:

Class Lion @Inject() (myApiService: MyApiService) extends Animal {...}

我还有另一个类AnimalActions需要动物对象的实例并用它执行一些动作。

所以我非常关心帮助我做到这一点:

trait AnimalObjects {

  def application: Application

  def animalList = List(classOf[Lion],
                       classOf[Tiger])

  lazy val animalInstances: List[Animal] = animalList.map(animal => application.injector.instanceOf(animal))
}

所以现在我可以去:

class AnimalActions @Inject() (val application: Application) extends AnimalObjects {...}

并且在AnimalActions我可以访问animalInstances ...

事情是,当我测试这个并且尝试访问animalInstances时我得到一个错误,我去了:

class MyTest extends FreeSpec with OneAppPerSuite {

  val animalActions: AnimalActions = app.injector.instanceOf[AnimalActions]

  "AnimalActions Test" in {
    println(animalActions.animalInstances)
  }

}

我得到的错误是:

  

1)注入构造函数时出错,java.lang.NumberFormatException:null   在   。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       对于services.MyApiService。(MyApiService.scala:21)的第一个参数   services.MyApiService.class(MyApiService.scala:21)在定位时   services.MyApiService       动物的第一个参数.objects.Lion。(Lion.scala:19)       引起:java.lang.NumberFormatException:null

我可以发誓它之前有效,但不确定是什么意思:/

感谢

0 个答案:

没有答案