Sangria与Scala 3

v9tzhpje  于 8个月前  发布在  Scala
关注(0)|答案(1)|浏览(72)

有没有在Scala 3程序中使用Sangria的例子,或者这是一个不可能的例子?在SBT中使用交叉编译构建是可以的,但是当我发送查询时,在Executor.execute中获得NoSuchMethodError异常。
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)
euoag5mw

euoag5mw1#

最快的解决方案是从akka切换到pekko(无痛),并修改sangriaakka-http帮助程序以使用pekko-http
具体来说,我克隆了sangria-akka-http-coresangria-akka-http-circeakka-http-circe,并将import akka替换为import org.apache.pekko。除此之外,主要的问题是构建过程而不是代码。
希望在某个时候会有这些库的官方pekko版本。

相关问题