У меня было Основное приложение со следующей структурой:
implicit val orgs: RootJsonFormat[GHOrg] = jsonFormat3(GHOrg)
implicit val users: RootJsonFormat[GHUser] = jsonFormat2(GHUser)
implicit val repos: RootJsonFormat[GHRepo] = jsonFormat3(GHRepo)
case class GHUser(login: String, contributions: Option[Int] = None)
case class GHRepo(name: String, owner: GHUser, contributors_url: String)
case class GHOrg(name: String, repos_url: String, members_url: String)
В какой-то момент я делаю
Unmarshal(e).to[List[GHRepo]]
И все работает, однако я делал немногоОчистка кода и я переместил три вышеупомянутых класса в другой пакет, и теперь я получаю ошибку заголовка. Я попытался это предложение ( Spray-JSON ошибка: не удалось найти неявное значение для параметра UM ), но не работает.
Вот как текущий код (не компилируется):
import akka.actor.ActorSystem
import akka.http.javadsl.model.StatusCodes
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
import akka.http.scaladsl.model._
import akka.http.scaladsl.unmarshalling.Unmarshal
import akka.stream.ActorMaterializer
import com.elbauldelprogramador.domain.{GHOrg, GHRepo, GHUser}
import org.slf4j.LoggerFactory
import spray.json.DefaultJsonProtocol._
import spray.json.RootJsonFormat
object Main extends App {
implicit val system: ActorSystem = ActorSystem()
implicit val materializer: ActorMaterializer = ActorMaterializer()
implicit val executionContext: ExecutionContextExecutor = system.dispatcher
implicit val orgs: RootJsonFormat[GHOrg] = jsonFormat3(GHOrg)
implicit val users: RootJsonFormat[GHUser] = jsonFormat2(GHUser)
implicit val repos: RootJsonFormat[GHRepo] = jsonFormat3(GHRepo)
// ....
Unmarshal(e).to[List[GHRepo]] // Error
// ....
}
Вот полная ошибка:
не удалось найти неявное значение для параметра um: akka.http.scaladsl.unmarshalling.Unmarshaller [akka.http.scaladsl.model.ResponseEntity, Список [com.elbauldelprogramador.domain.GHUser]] [ошибка] val users = Unmarshal (e) .to [Список [GHUser]] [ошибка] ^