将 Sangria 与 Scala 3 一起使用

问题描述 投票:0回答:1

是否有任何在 Scala 3 程序中使用 Sangria 的示例,或者这是不可能的?在 SBT 中使用交叉编译可以正常构建,但是当我发送查询时,在

NoSuchMethodError
中出现
Executor.execute
异常。

build.sbt
看起来像这样:

val AkkaVersion = "2.6.21"
val SangriaAkkaHttpVersion = "0.0.4"

crossScalaVersions := Seq("2.13.5", "3.3.0")
ThisBuild / scalaVersion := "3.3.0"

("com.typesafe.akka" %% "akka-actor-typed" % AkkaVersion).cross(CrossVersion.for3Use2_13),
("com.typesafe.akka" %% "akka-stream-typed" % AkkaVersion).cross(CrossVersion.for3Use2_13),
("org.sangria-graphql" %% "sangria-akka-http-circe" % SangriaAkkaHttpVersion).cross(CrossVersion.for3Use2_13),

关于如何让它发挥作用有任何线索吗?

错误信息:

java.lang.NoSuchMethodError: 'scala.runtime.BoxedUnit sangria.execution.Executor$.execute$default$4()'
    at XXX.graphql.GraphQlServer$$anon$1.applyOrElse(GraphQlServer.scala:55)
    at XXX.graphql.GraphQlServer$$anon$1.applyOrElse(GraphQlServer.scala:49)
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
    at sangria.http.akka.SangriaAkkaHttp.$anonfun$prepareGraphQLPost$2(SangriaAkkaHttp.scala:137)
scala graphql akka-http scala-3 sangria
1个回答
0
投票

事实证明,最快的解决方案是从

akka
切换到
pekko
(无痛),并修改
akka-http
帮助器以使用
sangria
具体来说,我克隆了 

pekko-http

sangria-akka-http-core
sangria-akka-http-circe
,并将
akka-http-circe
替换为
import akka
。除此之外,主要问题在于构建过程而不是代码。
希望这些库在某个时候会有官方 

import org.apache.pekko

版本。

    

© www.soinside.com 2019 - 2024. All rights reserved.