无法将消息返回给Spray HttpService Actor

 一生一世0521 发布于 2023-02-11 21:17

我正在学习Spray和Akka.使用其中一个路由存根构建了一个简单的Spray路由应用程序 -

path("blog" / LongNumber) {
  blogId =>
    respondWithMediaType(MediaTypes.`application/json`) {
      get {
        request => BlogFetchActor ! Get(blogId)
      }
    }
 }

在上面的代码中,我在我的喷涂路由定义(在实现HttpService的类中)中将消息分派给请求中具有ID(blogId)的另一个Actor.BlogFetchActor应该从数据库中获取数据并响应发送者.我的编码如下 -

def receive: Receive = LoggingReceive {
  case Get(id: Long) => {
    log.debug("Retrieving blog with id %d".format(id))
      sender ! ReturnBlog(get(id))
  }
 }

来自路线的Actor消息正在进入我的BlogFetchActor.我的BlogFetchActor也完成了从数据库中获取数据的工作.但是当我尝试将响应发送回发件人HttpService,ReturnBlog消息时,它不起作用.消息最终在DeadLetters中,我在我的日志中看到以下内容 -

从演员[akka:// on-spray-can/user/blog-service/blog#1301907662]到演员[akka:// on-spray-can/deadLetters]的消息[in.bharathwrites.BlogFetchActor $ ReturnBlog]不是交付.

为什么回复给发件人的回复不起作用?我究竟做错了什么?我怎么能做到这一点?我试过阅读Spray文档和ScalaDoc,但无法弄清楚问题.我不够精通阅读Spray代码并了解原因......提前致谢

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有