有没有在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)
1条答案
按热度按时间euoag5mw1#
最快的解决方案是从
akka
切换到pekko
(无痛),并修改sangria
的akka-http
帮助程序以使用pekko-http
。具体来说,我克隆了
sangria-akka-http-core
、sangria-akka-http-circe
和akka-http-circe
,并将import akka
替换为import org.apache.pekko
。除此之外,主要的问题是构建过程而不是代码。希望在某个时候会有这些库的官方
pekko
版本。