You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala独立应用使用WSClient报错:ning包不存在问题求助

问题原因

这个问题我熟!你遇到的错误是因为Play框架从2.6版本开始,对WS模块做了架构调整:原本包含在play-ws里的Ning(AsyncHttpClient)客户端实现,被单独抽成了play-ahc-ws模块。你当前只添加了play-ws依赖,它仅包含WS的API定义,没有具体的Ning实现,所以编译器找不到play.api.libs.ws.ning这个包。

解决方案

1. 补充依赖到build.sbt

在你的build.sbt里添加play-ahc-ws的依赖,它包含了Ning客户端的完整实现:

libraryDependencies += "com.typesafe.play" %% "play-ahc-ws" % "2.6.1"

保留原来的play-ws和play-json依赖即可,不需要移除。

2. 优化代码(可选但推荐)

Play 2.6开始官方推荐使用Standalone WS客户端API,它比原来的Ning专属API更简洁,也更利于后续版本迁移。你可以把代码改成这样:

import play.api.libs.ws._
import play.api.libs.ws.ahc._
import scala.concurrent.ExecutionContext.Implicits.global

object WSStandaloneTest {
  def main(args: Array[String]) {
    // 用StandaloneAhcWSClient快速创建客户端
    val client = StandaloneAhcWSClient()
    
    // 执行GET请求
    val response = client.url("http://www.example.com").get()
    
    response.foreach(r => {
      println(r.body)
      // 请求完成后关闭客户端
      client.close()
    })
  }
}

如果坚持要用原来的Ning相关代码,只要添加了play-ahc-ws依赖,原来的导入和客户端创建逻辑也能正常工作,但Standalone API是官方主推的方向。

3. 重新编译项目

执行sbt clean compile命令,让sbt重新下载新依赖并编译代码,错误就会消失啦。

内容的提问来源于stack exchange,提问作者sge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:12:12