无法使用MacWire注入Plays WS或WSClient

5
这是我想要做的事情:
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()
  }
}

如果我尝试使用wire[WS] IntelliJ会报无法解析符号错误。在IntelliJ中没有显示任何错误,但是在编译时mac wire会抛出以下异常:找不到WeakTypeTag [play.api.libs.ws.WSClient]的构造函数。这个类只是为了定义应用程序的基本路线,并将由一些不同的类扩展到每个特定的路线。我想 mock WS 依赖项,以便在测试这些后代类时不发送实际的 HTTP 请求。
1个回答

0

也许你可以尝试这个:

  lazy val http: WSClient = WS.client

1
没有适用范围内的应用程序可使用。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接