我有一个具有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
我可以发誓它之前有效,但不确定是什么意思:/
感谢