微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使我已经创建了 JsonProtocol,编译器也找不到隐式值

如何解决即使我已经创建了 JsonProtocol,编译器也找不到隐式值

所以我有这个简单的 post 端点,应该在那里进行一些解组

post {
      path("/emails") {
        import package.model.impl.RegularEmailJsonSupport._
        entity(as[RegularEmail]) { regularEmail =>
          storeInboundEmails(regularEmail).runDB.attempt.unsafeRunSync()
     }
}

这是与 json 协议格式一起的模型类,我不太相信它对 EmailStatus 字段是否正确

case class RegularEmail(
    id: BigInt,timestamp: DateTime,senderEmailAddress: String,originalRecipientsAddresses: List[String],cc: List[String],subject: String,content: JsValue,customerNumber: Int,status: EmailStatus = EmailStatus.UNREAD,originalSenderEmailAddress: String,hasAttachments: Boolean = false
//Metadata: Option[EmailMetadata]
) extends Email(
  id = id,timestamp = timestamp,senderEmailAddress = senderEmailAddress,originalRecipientsAddresses = originalRecipientsAddresses,cc = cc,subject = subject,content = content,status = status,hasAttachments = hasAttachments,sourceType = EmailSourceType.REGULAR //,//Metadata = Metadata
) {
}

object RegularEmailJsonSupport extends DefaultJsonProtocol with SprayJsonSupport {
  implicit val eventDataFormat = jsonFormat1(DateTime.apply)
  implicit val statusFormat = jsonFormat1(EmailStatus.apply)
  implicit val EmailFormat = jsonFormat11(RegularEmail.apply)
}

这些是我得到的错误

Could not find implicit value for parameter um: akka.http.scaladsl.unmarshalling.FromrequestUnmarshaller


Could not find implicit value for evidence parameter of type RegularEmailJsonSupport.JF[P1] (Cannot find JsonWriter or JsonFormat type class for P1)
[error]   implicit val statusFormat = jsonFormat1(EmailStatus.apply)

我也看到编译器没有抱怨 DateTime 的 jsonFormat,所以这个问题是由 EmailStatus 引起的吗?

EmailStatus 是Email 抽象类中的一个对象,它被RegularEmail 继承,如下所示:

object EmailStatus extends Enumeration {
  type EmailStatus = Value
  val READ,UNREAD,CLOSED = Value
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?