无法使用Play 2.4注入WSClient

时间:2016-03-02 06:35:38

标签: scala playframework guice playframework-2.4

我正在将现有应用从Play 2.3转换为Play 2.4。我试图摆脱对推荐的全局状态的依赖。在此部分中,我尝试使用现在提供的可注入WS.client API替换对play.api.Play.currentWSClient的依赖关系。我正在使用Guice运行时注入。尝试以下代码/配置我得到NullPointerException的{​​{1}}。

WebServiceProvider此类

wSClient:WSClient

application.conf

trait WebServiceProvider { def getWS: WSClient } @Singleton class DefaultWebServiceProvider @Inject ()(wSClient: WSClient) extends WebServiceProvider { override def getWS = wSClient }

MyGuiceModule.scala

play.modules.enabled += "MyGuiceModule"

如果我尝试将WSClient注入class MyGuiceModule() extends AbstractModule { def configure: Unit = { ..... bind(classOf[WebServiceProvider]).to(classOf[DefaultWebServiceProvider]) ... } ,它不会抛出NPE,但我不需要注入它。考虑到这一点,这也可能是相关的。

build.sbt

Controller

- 编辑 -

MyController.scala(它在这里工作,但我不想在这里注入)

...
routesGenerator := InjectedRoutesGenerator

WebServiceUser.scala

class MyController @Inject() (aService: AService, ws: WSClient) extends Controller

0 个答案:

没有答案