繁体   English   中英

cant inject使用macwire播放WS或WSClient

[英]cant inject plays WS or WSClient with macwire

这是我想要做的

package gc.services.http.playWs.lmi

import com.softwaremill.macwire.Macwire
import play.api.Play.current
import play.api.libs.ws._
import play.api.libs.ws.ning.NingAsyncHttpClientConfigBuilder
import scala.concurrent.Future
import play.api.libs.ws.{WSResponse, WSRequestHolder, WSClient}

import scala.concurrent.Future

class LmiWs extends Macwire{
  val baseUrl = "http://api.lmiforall.org.uk/api/v1"
  //inject plays ws client
  lazy val http = wire[WSClient]

  def getRequestHolder(url: String = baseUrl): WSRequestHolder = {
    http.url(url)
  }

  def get(request: WSRequestHolder): Future[WSResponse] = {
    request.get()
  }
}

如果我尝试连线[WS] IntelliJ给出无法解析符号。 IntelliJ中没有显示上述错误,但是在编译mac wire throws时

annot找到WeakTypeTag的构造函数[play.api.libs.ws.WSClient]

这个类只是为我想要命中的应用程序定义基本路由,并且它将针对每个特定路由扩展为一些不同的类。 我希望能够模拟WS依赖关系,这样当我测试它和后代类时,我可以这样做,而无需发送实际的HTTP请求。

也许你可以试试这个:

  lazy val http: WSClient = WS.client

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM