问题标签 [scalapb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asynchronous - 等待所有客户端发送数据,然后在 scalaPB 中响应
我的服务器需要来自多个客户端的输入,然后才能响应每个客户端,因为所有输入都依赖于另一个。所以我尝试使用await
,Future
和Promise
,但我没有运气。
在这个例子中,只有最后一个连接的客户端得到响应,而其余的则无限等待。这是示例代码,因为在此示例中没有理由等待所有客户端发送数据。
服务器
客户
.proto 文件
scala - 同步客户端和服务器
我正在制作一个分布式排序系统,其中每台机器(客户端)都有特定范围的值(分区)来存储。我发送和接收数据没有任何问题,但同步是我的问题。在从服务器检索想要的分区之前,它必须首先从其他客户端之一到达服务器。
我已经尝试过delay
和其他各种 RPC 调用来尝试同步客户端和服务器,但是客户端运行不同步,程序中断。我想我必须合并future
or promise
,但我不确定如何。
每个客户端都有一个唯一的 ID(从 0 开始),并将根据该编号存储分区。一行数据如下所示:AsfAGHM5om 00000000000000000000000000000000 0000222200002222000022220000222200002222000000001111
编辑:例如更新的代码
客户
服务器
原型
scala - 带有 Scala 3 的 zio-grpc(第二次尝试)
有没有人有一个简单的 zio-grpc 服务器,项目中也有 codegen,使用 Scala 3?
我从他们的 repo 开始使用 HelloWorld 项目,并尝试使用 scalaVersion := "3.1.0" 构建它
这是 plugins.sbt 中的相关部分:
在 build.sbt 中:
由于 Scala 3 可以使用 2.13 库,这就是我正在做的。(三个与 zio-grpc 相关的库中,一个是 zio-grpc-codegen,没有 Scala 3 版本,因此至少必须使用 2.13。)
我从具有上述版本的 sbt 收到此错误:
java.lang.NoSuchMethodError: scala.package$.Seq()Lscala/collection/immutable/Seq$; 在 protocbridge.gens$.java(gens.scala:17) 在 protocbridge.gens$.(gens.scala:11)
如果我删除任何一个 scala-collection-compat 排除项,我们会得到
[错误] 使用 ProjectRef(uri("file:/Users/xxx/dev/zio-grpc/examples/helloworld/project/"), "helloworld-build") 中冲突的跨版本后缀解决了模块:[错误] com.thesamet.scalapb:protoc-bridge _2.12, _2.13 [错误] com.thesamet.scalapb:compilerplugin _3, _2.13
简而言之,我找不到 Scala 2.13/3 版本的 zio-grpc-codegen、compilerplugin_3 和 scalapb-runtime-grpc 的任何排列,它们不会给出一些 sbt 冲突的跨版本后缀错误。
scala - 如何仅使用一个 TypeMapper 将任何 protobuf 枚举生成为字符串?
例如,我的原型模式中有一些枚举:
我可以通过提供scalaPB
TypeMapper
s 来生成带有字符串而不是枚举的 scala 类:
但我不想为任何单个枚举复制粘贴相同的 TypeMappers
有没有办法为所有枚举只制作一个 TypeMapper scalaPB
?
scala - 将 ByteArray 转换为 String 到 ByteArray
我想将 ByteArray 转换为字符串,然后将字符串转换为 ByteArray,但是在转换值时发生了变化。有人帮助解决这个问题。
人.proto:
在 sbt compile 之后,它给出了案例类 Person(由 google protobuf 在编译时创建)
我的主课:
为什么价值观改变了?如何正确转换??
scalapb - java.lang.VerifyError:类 frameless.functions.Spark2_4_LambdaVariable 覆盖最终方法 genCode
我正在运行使用 ProtoSQL.udf 的数据块作业。数据框有一列已编码 protoValue。parse 方法用于创建一个新列,该列存储从 protoValue 中提取的 json。
scalaVersion = 2.12 scalapb.version = 0.11.8
使用以下依赖项
实施“com.thesamet.scalapb:sparksql32-scalapb0_11_2.12:1.0.0-M1”
实施“com.thesamet.scalapb:scalapb-json4s_2.12:0.11.0”
实施“com.thesamet.scalapb:scalapb-runtime_2。 12:0.11.8"
在 ProtoSQL.udf 运行时出现以下错误
java.lang.VerifyError:类 frameless.functions.Spark2_4_LambdaVariable 覆盖最终方法 genCode.(Lorg/apache/spark/sql/catalyst/expressions/codegen/CodegenContext;)Lorg/apache/spark/sql/catalyst/expressions/codegen/ExprCode ;
堆栈跟踪
OpenJDK 64 位服务器 VM 警告:忽略选项 MaxPermSize=512m;支持已在 8.0 22/02/25 11:00:28 中删除 错误未从用户代码中捕获抛出:java.lang.VerifyError: class frameless.functions.Spark2_4_LambdaVariable 覆盖最终方法 genCode.(Lorg/apache/spark/sql/catalyst/表达式/codegen/CodegenContext;)Lorg/apache/spark/sql/catalyst/expressions/codegen/ExprCode;在 java.lang.ClassLoader.defineClass1(Native Method) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:757) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass (URLClassLoader.java:468) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:74) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:369) 在 java.net.URLClassLoader$1.run(URLClassLoader .java:363) 在 java.security。