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

h5qlskok  于 2023-11-17  发布在  Spring
关注(0)|答案(1)|浏览(228)

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

  1. syntax = "proto3";
  2. import public "common/session-context.proto";
  3. import public "common/serviceInvocationModeType.proto";
  4. import public "common/auditable.proto";
  5. import public "common/coreEngineBase.proto";
  6. import public "common/transactionStatus.proto";
  7. import public "common/date.proto";
  8. option java_multiple_files = true;
  9. option java_package = "com.mnp.grpc.casa";
  10. message CasaAccountOpeningGrpcDTO{
  11. string accountTitle = 1;
  12. string systemStatus = 2;
  13. AccountTypeEnum accountType = 3;
  14. }
  15. message CasaAccountOpeningGrpcResponseDTO{
  16. string accountNumber = 1;
  17. string applicationId = 2;
  18. }
  19. message CasaAccountOpeningRequest{
  20. SessionContext sessionContext = 1;
  21. CasaAccountOpeningGrpcDTO casaAccountOpeningGrpcDTO = 2;
  22. }
  23. message CasaAccountOpeningResponse{
  24. CasaAccountOpeningGrpcResponseDTO casaAccountOpeningGrpcResponseDTO = 1;
  25. TransactionStatus transactionStatus = 2;
  26. }
  27. enum AccountTypeEnum{
  28. CASA = 0;
  29. ABC = 1;
  30. XYZ = 2;
  31. }
  32. service CasaAccountOpeningService{
  33. rpc processAccountOpening(CasaAccountOpeningRequest) returns (CasaAccountOpeningResponse) ;
  34. }

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

mi7gmzs6

mi7gmzs61#

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

相关问题