簡體   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