小编Nic*_*oiu的帖子

scala注释参数需要是常量,但最终的val不能成功

在这个片段中,

@SwaggerDefinition(...authorizationUrl = 
SecurityConstants.authorizationUrl)
Run Code Online (Sandbox Code Playgroud)

鉴于此

final object SecurityConstants {
  final val authorizationUrl: String =..
}
Run Code Online (Sandbox Code Playgroud)

(两个决赛中只有一个应该没问题,但仍然存在)我期待/希望这可以用2.12.3编译,但是它给出了"注释参数需要是一个常量;找到:SecurityConstants.authorizationUrl [error] authorizationUrl = SecurityConstants.authorizationUrl,"

在注释中调用Java静态方法System.getenv("a")也会带来相同的错误,即

@SwaggerDefinition(...authorizationUrl = System.getenv("a"))
Run Code Online (Sandbox Code Playgroud)

请帮忙,Nicu M.

annotations scala compiler-errors

10
推荐指数
1
解决办法
1893
查看次数

有没有可靠的开源可以代理 UDP 流量,例如 QUIC?

Chrome/Chromium 似乎支持代理的命令行参数,来自标准的 http、https 代理,但也支持 UDP 代理,这对于代理 QUIC 或 HTTP/3 网站(例如 Google 自己的网站)很有用。

我只能找到:

如果 Chrome 提供了配置 UDP/QUIC/HTTP3 代理的功能,那么是否还有一个类似鱿鱼的转发代理支持 UDP 而不仅仅是 TCP 作为底层协议?

proxy udp google-chrome http server

5
推荐指数
1
解决办法
2325
查看次数

当我有对类型化actor系统的引用时,如何为 AkkaStreams 实例化一个物化器?

下面的代码不能编译,它说 ActorMaterializer 缺少一个隐式的 ActorRefFactory。我该如何提供?

val guardian: Behavior[Done] = Behaviors.setup(_ => {
  Behaviors.receiveMessage{
    case Done => Behaviors.stopped
  }
})
implicit val sys = ActorSystem(guardian, "sys")
implicit val materializer: Materializer = ActorMaterializer()
Run Code Online (Sandbox Code Playgroud)

scala akka akka-stream akka-typed

3
推荐指数
2
解决办法
1419
查看次数

如何在 mac 上安装 openjdk 8 和 sbt 并使 openjdk 8 (而不是 13)成为默认版本?

使用brew和/或brew cask安装java 8和sbt显然是可能的,我遇到的问题是brew安装java 13作为sbt依赖项,

我不知道返回到默认 java 8 的一般方法,因为有很多方法可以在 java 版本之间进行选择,我知道其中一些方法包括 PATH、JAVA_HOME、ln -s、java_exec 选择器。

另一个潜在的问题是brew install sbt安装brew install java,它是13,但是java 8我通过brew cask安装它。

TL 说 Java 13 或 14 可能会导致一些问题,例如测试失败,我应该推送最新版本的 OpenJdk、Scala、SBT 等吗?

java macos scala sbt

2
推荐指数
1
解决办法
3632
查看次数

为什么我会收到此编译错误:“无法找到 kstream.Consumed 的隐式值”以及如何修复它?

我们有这些依赖关系:

libraryDependencies += "org.apache.kafka"       %% "kafka-streams-scala"         % kafkaVersion
libraryDependencies += "io.confluent"           % "kafka-streams-avro-serde"     % confluentVersion
libraryDependencies += "io.confluent"           % "kafka-schema-registry-client" % confluentVersion
libraryDependencies += "ch.qos.logback"         % "logback-classic"              % "1.2.3"
libraryDependencies += "com.typesafe"           % "config"                       % "1.4.0"
libraryDependencies += "com.sksamuel.avro4s"    %% "avro4s-core"                 % "3.0.4"
Run Code Online (Sandbox Code Playgroud)

我们使用代码生成器从 AVRO 模式文件生成 Scala 案例类。一个这样生成的案例类具有 Either 值作为其字段之一。在 AVRO 模式中,这是用 type=[t1,t2] 表示的,因此生成看起来不错,这是一个总和类型:可以是类型 t1 或类型 t2。

问题变成从主题到案例类(二进制 -> Avro Map -> 案例类)的反序列化路径中缺少什么。

基本上我目前收到此错误:

could not find implicit value for parameter consumed: org.apache.kafka.streams.scala.kstream.Consumed[String, custom.UserEvent]
[error]       .stream[String, UserEvent]("schma.avsc")
Run Code Online (Sandbox Code Playgroud)

第一个想法是 kafka-streams-avro-serde,但可能这个库只确保 AVRO …

scala jsonschema avro apache-kafka apache-kafka-streams

2
推荐指数
1
解决办法
1712
查看次数

考虑到 bindAndHandle 方法采用 Flow 而不是 Route 类型的第一个参数,Scala 程序如何编译?

在一个演示项目中,https://github.com/chbatey/akka-http-typed存在以下代码,它可以编译但我不明白表达式“Http()(untypedSystem).bindAndHandle(routes .userRoutes, "localhost", 8080)" 可以编译,因为 bindAndHandle 方法接受下面的参数(所以第一个应该是 Flow,但它是一个 Route,即 RequestContext ? Future[RouteResult] 函数类型)。

在另一个项目中,我得到了编译错误,我可以理解,因为实际参数的类型为Route,但第一个参数的声明类型为Flow。

请指教。

//def bindAndHandle(
//    handler:   Flow[HttpRequest, HttpResponse, Any],
//    interface: String, port: Int = DefaultPortForProtocol,
//    connectionContext: ConnectionContext = defaultServerHttpContext,
val serverBinding: Future[Http.ServerBinding] = Http()(untypedSystem).bindAndHandle(routes.userRoutes, "localhost", 8080)
//type of routes.userRoutes is Route
//where type Route = RequestContext ? Future[RouteResult]
//how can it be that this compiles? In another project it does not (which makes more sense to me)
Run Code Online (Sandbox Code Playgroud)

scala akka akka-http

0
推荐指数
1
解决办法
45
查看次数