首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka gRPC/HTTP Interop提供404

Akka gRPC/HTTP Interop提供404
EN

Stack Overflow用户
提问于 2021-07-31 04:10:43
回答 1查看 91关注 0票数 0

我有一个运行gRPC服务的应用程序和一个简单的Akka HTTP端点。我遵循这个指南:https://doc.akka.io/docs/akka-grpc/current/server/akka-http.html。问题:当卷曲HTTP端点时,我得到404not found。我知道它找到了服务器,因为Akka-HTTP/10.2.5是响应头的服务器。

下面是一些代码:

代码语言:javascript
复制
object Server extends App {
        val conf = ConfigFactory
            .parseString("akka.http.server.preview.enable-http2 = on")
            .withFallback(ConfigFactory.defaultApplication())
        val system = ActorSystem("Interop", conf)
        new Server(system).run()
}

class Server(system: ActorSystem) {
    def run() = {
        // implicit sys, ec...
        val grpcService: HttpRequest => Future[HttpResponse] = ServiceHandler(new Service())
        val greeter = get {
            pathEndOrSingleSlash {
                complete("I am alive")
            }
        }
        // lifted this line straight out of the guide
        val grpcRoute = { ctx => grpcService(ctx.request).map(RouteResult.Complete) }
        val route = concat(greeter, grpcRoute)
        val binding = Http().newServerAt("127.0.0.1", 8080).bind(route)
        binding
    }
}

当我删除gRPC路由时,欢迎端点按预期工作。否则,当我使用curl http://localhost:8080时,我会得到

代码语言:javascript
复制
*Mark bundle as not supporting multiuser
<HTTP/1.1 404 Not Found
<Server: akka-http/10.2.5
<other-stuff

我使用的是akka-gRPC 2.0.0

我应该怎么做才能确保两个路由之间的互操作性?

EN

回答 1

Stack Overflow用户

发布于 2021-07-31 14:17:10

gRPC使用超文本传输协议/2,所以尝试

代码语言:javascript
复制
curl --http2 http://localhost:8080

它还应该去掉最初的"Mark bundle...“消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68599020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档