Spring Boot 如何在gRPC Service中将.proto生成的ENUM值作为null传递

h5qlskok  于 7个月前  发布在  Spring
关注(0)|答案(1)|浏览(94)

我正在使用gRPC通信,同时调用其他微服务模块中的服务。
下面是我的示例.proto文件

syntax = "proto3";

import public "common/session-context.proto";
import public "common/serviceInvocationModeType.proto";
import public "common/auditable.proto";
import public "common/coreEngineBase.proto";
import public "common/transactionStatus.proto";
import public "common/date.proto";

option java_multiple_files = true;
option java_package = "com.mnp.grpc.casa";

message CasaAccountOpeningGrpcDTO{
  string accountTitle = 1;
  string systemStatus = 2;
  AccountTypeEnum accountType = 3;

}

message CasaAccountOpeningGrpcResponseDTO{
  string accountNumber = 1;
  string applicationId = 2;

}

message CasaAccountOpeningRequest{
    SessionContext sessionContext = 1;
    CasaAccountOpeningGrpcDTO casaAccountOpeningGrpcDTO = 2;
}

message CasaAccountOpeningResponse{
  CasaAccountOpeningGrpcResponseDTO casaAccountOpeningGrpcResponseDTO = 1;
  TransactionStatus transactionStatus = 2;
}

enum AccountTypeEnum{
  CASA = 0;
  ABC = 1;
  XYZ = 2;
}

service CasaAccountOpeningService{
rpc processAccountOpening(CasaAccountOpeningRequest) returns (CasaAccountOpeningResponse) ;
}

字符串
现在,每当我想在调用服务时将AccountTypeEnum值作为null发送时,如果我将AccountTypeEnum作为null传递,那么它会给出一个指针异常。如何在使用gRPC服务时将AccountTypeEnum作为null传递?

mi7gmzs6

mi7gmzs61#

您正在尝试设置Java enum null值,但该值未Map到protobuf enum。请查看https://protobuf.dev/programming-guides/proto3/#enum。使用默认值(如Map到0),并将字段显式设置为默认值或不设置任何值。

相关问题