如何在 matlab 中访问 gRPC 服务器?
How to access gRPC server in matlab?
我们已将我们的数据访问逻辑移至微服务,它目前作为 gRPC 和 C++ 实现,我们能够在 C# 客户端和 C++ 客户端中利用它。
现在我们必须在 Matlab 客户端(旧版)中使用这个 DataAccess grpc。所以,我试图找到一种从 Matlab 访问 gRPC 的方法,发现没有官方支持。
我找到了两个解决方案,
使用Java
我已经按照 . i have created a sample grpc 客户端 java 中的建议使用 Eclipse 进行了尝试。但是当我尝试从 matlab 访问 class/methods 时,我遇到了以下问题,
Java exception occurred:
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;)V
at io.grpc.Metadata$Key.validateName(Metadata.java:630)
at io.grpc.Metadata$Key.<init>(Metadata.java:638)
at io.grpc.Metadata$Key.<init>(Metadata.java:568)
at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:743)
at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:738)
at io.grpc.Metadata$Key.of(Metadata.java:594)
at io.grpc.Metadata$Key.of(Metadata.java:590)
at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:84)
at io.grpc.internal.AbstractManagedChannelImplBuilder.<clinit>(AbstractManagedChannelImplBuilder.java:83)
at io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:37)
at io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:23)
at io.grpc.ManagedChannelBuilder.forAddress(ManagedChannelBuilder.java:37)
有人讨论过 here,它说不可能了。谁能告诉我这现在是否可行,或者我遗漏了什么?
使用 Matlab Proto 编译器 [Farsounder]
接下来我尝试使用Farsounder solution v2.5.0 for creating stub files based on 。
只有在创建 protoc.exe 之后,我才意识到它是用于 Proto V2 的。所以,现在我正在尝试使用 Protov3Matlab.
但是这里的构建说明并不清楚,它有一个 cmake 文件,我不知道如何 运行 它。谁能帮我为 windows 环境构建这个?
我是 Java 和 Matlab 的新手,如果我遗漏了任何明显的东西,请见谅。
提前致谢。
我能够创建 protoc.exe。
步骤:
- 检查了最新的 protobuf 源。
- 使用 farsounder matlab 源和 cmake 文件更新了源。
- 已关注 https://github.com/protocolbuffers/protobuf/blob/master/cmake/README.md 构建源代码。
我们已将我们的数据访问逻辑移至微服务,它目前作为 gRPC 和 C++ 实现,我们能够在 C# 客户端和 C++ 客户端中利用它。
现在我们必须在 Matlab 客户端(旧版)中使用这个 DataAccess grpc。所以,我试图找到一种从 Matlab 访问 gRPC 的方法,发现没有官方支持。
我找到了两个解决方案,
使用Java
我已经按照
Java exception occurred:
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;)V
at io.grpc.Metadata$Key.validateName(Metadata.java:630)
at io.grpc.Metadata$Key.<init>(Metadata.java:638)
at io.grpc.Metadata$Key.<init>(Metadata.java:568)
at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:743)
at io.grpc.Metadata$AsciiKey.<init>(Metadata.java:738)
at io.grpc.Metadata$Key.of(Metadata.java:594)
at io.grpc.Metadata$Key.of(Metadata.java:590)
at io.grpc.internal.GrpcUtil.<clinit>(GrpcUtil.java:84)
at io.grpc.internal.AbstractManagedChannelImplBuilder.<clinit>(AbstractManagedChannelImplBuilder.java:83)
at io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:37)
at io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:23)
at io.grpc.ManagedChannelBuilder.forAddress(ManagedChannelBuilder.java:37)
有人讨论过 here,它说不可能了。谁能告诉我这现在是否可行,或者我遗漏了什么?
使用 Matlab Proto 编译器 [Farsounder]
接下来我尝试使用Farsounder solution v2.5.0 for creating stub files based on
但是这里的构建说明并不清楚,它有一个 cmake 文件,我不知道如何 运行 它。谁能帮我为 windows 环境构建这个?
我是 Java 和 Matlab 的新手,如果我遗漏了任何明显的东西,请见谅。
提前致谢。
我能够创建 protoc.exe。 步骤:
- 检查了最新的 protobuf 源。
- 使用 farsounder matlab 源和 cmake 文件更新了源。
- 已关注 https://github.com/protocolbuffers/protobuf/blob/master/cmake/README.md 构建源代码。