问题标签 [protocol-buffers]

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.

0 投票
10 回答
84152 浏览

eclipse - 如何让 Eclipse 解析使用 Maven 2 生成的类?

我正在使用 Google Protocol Buffers 为我的项目生成一些 Java 类。使用 Maven 2 及其“antrun”插件,这些类在编译前新生成,输出到目标/生成源并在构建期间放置在类路径中。所以从 POM 构建项目是没有问题的。

但是,Eclipse 不知道如何解析生成的类,因为它所在的文件夹在开发过程中似乎不在 IDE 的类路径中。我正在使用 m2eclipse 并让它为我管理依赖项,所以我希望 Maven 会处理这个问题。

如何获得生成代码的 IDE 支持(代码完成等)?

0 投票
2 回答
5249 浏览

java - 内部服务器错误

我在运行我的应用程序时遇到了一个不寻常的错误,只是想知道是否有人以前遇到过这个问题。我正在使用谷歌协议缓冲区,我的 servlet 接受一个请求并尝试处理它,我有以下代码:

执行第二行后,我在 Myeclipse 调试器中得到以下错误:

找不到 ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) 行的源:310

我正在使用 Jboss 应用服务器。我收到 HTTP 状态代码 500:内部服务器错误。

有没有人有任何建议/想法?

0 投票
2 回答
3445 浏览

c# - 带有扩展的协议缓冲区

我可能忽略了一些东西,但我试图将协议缓冲区转换为一种简单的方法,以便以后提供扩展。这似乎有点不清楚,所以我将直接进入这个问题。

我正在编写一个程序集来支持各种任务,其中之一包括描述结构化数据。使用协议缓冲区的最佳时机。使用协议缓冲区的主要类称为 StateDefinition。这是我为它设计的 .proto 文件:

我的目标是允许这些 _StateDef 消息稍后使用它需要的字段进行扩展。但是,此扩展将独立于我当前正在编写的库发生。

Kagents.dll -> 处理 StateDefinition 解析等。

引用 Kagents.dll 的东西 -> 有一个带有“扩展 GraphicsStateDef”的 protobuff 文件来定义所需的状态。

我希望定义“扩展 GraphicsStateDef”会生成允许我使用属性访问这些字段的代码,并避免繁琐的“Extendible.AppendValue()”和 GetValue() 语法。

我设计的一个解决方案,看起来很老套,是在引用 DLL 中定义一个带有扩展方法的类,如下所示:

如果有人能想到更好的方法,我将不胜感激。=) 另外,我不确定我对问题的描述有多清晰,所以如果我可以提供任何澄清或进一步的信息,请告诉我。=)

编辑:所以,经过深思熟虑并意识到我正在处理错误的问题。StateReference 应该存储不同 GameState 的列表。同样,它存储了一个 StateDefinition,它应该描述这个状态引用的状态。目前,我正在尝试将状态缓冲区反序列化为不同的类(GraphicsStateDef),而我真的应该反序列化为状态对象本身。

因此,我需要重新考虑设计,使 StateDefinition 成为流的容器,并且只为“repeated StateTypes requiredStates=1”字段提取足够的信息。然后,在引用程序集中,可以将流的其余部分反序列化为相应的状态。

有没有人对如何解决这个问题有建议?一些想法正在形成,但没有具体的想法,我喜欢其他人的意见。

0 投票
4 回答
2384 浏览

c# - 基类中的 C# 泛型类型

我正在编写一个具有一组协议缓冲区(使用 protobuf-net)的系统,我想在它们都继承的抽象类中定义这样的东西:

但是,protocol buffer serealiser 需要一个类型参数,有没有一些有效的方法来获取继承类的类型?

例子:

0 投票
2 回答
26125 浏览

c# - 如何从装饰有属性的 C# 类生成 .proto 文件?

试图让我的想法围绕 google protobuf。我在 C# 中找到了一些 protobuf 的实现,但它们似乎缺少一个功能:从现有的 C# 类中自动生成 .proto 文件的能力,该类装饰有属性。

我想这样做而不是从 .proto 文件中自动生成的 C# 类的原因是因为我已经在我的项目中定义了 C# 类,我不想复制它们只是为了满足 ProtoBuf。

有没有人遇到过这样的场景?


更新

这是否可以只装饰一个 C# 类而不使用 .proto 文件来使用 protobuf?

0 投票
2 回答
5353 浏览

c# - 是否可以将 Protobuf-Net 与没有无参数构造函数的类一起使用?

使用 Protobuf-Net,我发现在没有无参数构造函数的情况下似乎无法反序列化一个类,或者我可能遗漏了什么?

我不想要一些带有无参数构造函数的类。是否有某种我可以使用的属性或其他一些技术?

0 投票
1 回答
2220 浏览

c# - 如何在 Protobuf/Protobuf-net 中使用某些对象继承的列表/数组?

使用 Protobuf/Protobuf-net 和两个类,一个是基类,另一个是从基类派生的。
您将如何序列化/反序列化列表?

例如:

以及要序列化的以下字段:

请记住,该列表包含 SomeBase 和 SomeDerived 对象。

0 投票
3 回答
2407 浏览

.net - .NET 中是否有生产质量的 Google Protocol Buffers 实现

标题说了算!

我知道 Jon Skeet 正在研究一个实现,我听到了一次采访(Dot net Rocks?),他暗示这是 wip

最新页面仅显示版本号。那么,它现在准备好生产了吗?

谢谢

0 投票
5 回答
65354 浏览

java - Google 协议缓冲区和 HTTP

我正在使用 gSoap 将遗留 C++ 系统重构为 SOA。我们有一些性能问题(非常大的 XML),所以我的领导让我看看协议缓冲区。我做到了,它看起来很酷(我们需要 C++ 和 Java 支持)。但是协议缓冲区只是用于序列化的解决方案,现在我需要将它发送到 Java 前端。从 C++ 和 Java 的角度来看,我应该使用什么来通过 HTTP(只是内部网络)发送这些序列化的内容?

PS。另一个人试图加速我们的 gSoap 解决方案,我只对协议缓冲区感兴趣。

0 投票
2 回答
1017 浏览

java - 使用 Java 访问 WCF 服务

我正在使用 WCF 开发 Web 服务,我想使用用 Java 编写的客户端访问它。我将使用协议缓冲区对消息进行编码(准确地说是 Marc Gravell 的protobuf-net)。

这是否可能实现或客户端也必须用.NET 编写?我知道使用协议缓冲区序列化的数据是二进制互操作的,但我不知道 WCF 是否在编码的协议消息之上添加了任何特定于平台的元数据。

我不在乎 WCF 服务是 RESTful、基于 SOAP 还是其他任何形式的 WCF 支持,我只希望使用 PB 对实际有效负载进行编码。这是否可能,如果是的话,我将非常感谢一个简短的例子。