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

基于Finagle开发Hello World API报com.twitter包不存在如何解决

问题根因
  • 报错本质是Finch和Finagle版本不兼容、依赖传递缺失两类问题:
    • 方案1、3仅引入finch-core,部分低版本finch不会自动传递依赖完整的finagle相关包,导致找不到com.twitter包路径
    • 方案2单独引入finagle-http 21.8.0,但没有匹配对应兼容的finch版本,出现版本冲突导致依赖加载失败
修复方案

第一步:替换为正确的兼容版本SBT配置

完整的build.sbt配置如下,已经适配你使用的Scala 2.12.15版本:

name := "microservicestest"
version := "0.1"
scalaVersion := "2.12.15"

libraryDependencies ++= Seq(
  // 显式引入匹配版本的Finagle核心依赖
  "com.twitter" %% "finagle-http" % "22.7.0",
  // 对应兼容版本的Finch
  "com.github.finagle" %% "finch-core" % "0.34.1",
  "com.github.finagle" %% "finch-circe" % "0.34.1",
  "io.circe" %% "circe-generic" % "0.14.2"
)

第二步:清理本地缓存重新加载依赖

在项目根目录执行以下命令,清除之前可能损坏的依赖缓存:

sbt clean reload update

如果依赖下载过慢,可在用户目录下的.sbt/repositories文件中加入国内镜像源加速下载。

第三步:补全Scala代码缺失的导入

你的代码中缺少Text类的导入,补充后完整代码如下:

import io.finch._
import io.finch.Text
import com.twitter.finagle.Http
import com.twitter.util.Await

object HelloWorld extends App {
  val api: Endpoint[String] = get("hello") { Ok("Hello, World!") }
  Await.ready(Http.server.serve(":8080", api.toServiceAs[Text.Plain]))
}
验证

启动项目后,在浏览器或curl访问http://localhost:8080/hello,即可看到返回的Hello, World!字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:18:02