代码之家  ›  专栏  ›  技术社区  ›  Sharat Chandra

导入另一个proto文件时出错

  •  4
  • Sharat Chandra  · 技术社区  · 7 年前


    你能指出我遗漏了什么吗?

    protoc --proto_path=src\main\resources\proto --java_out=src\main\java src\main\resources\proto\PayloadProtocol.proto
    
    PayloadProtocol.proto:32:14: "DataContainer" is not defined.
    PayloadProtocol.proto: warning: Import BackendCommunicationService.proto but not used.
    

    import "BackendCommunicationService.proto";
    package com.fleetboard.tp.payload.protocol.protobuf;
    
    option java_package = "com.fleetboard.tp.proto.protocol";
    message TPMessage {
            required int32 serviceId               = 1;                    // telematic service (TS) id, who owns this message
            required int32 functionId              = 2;                    // function id refers to the Java class for the payload
            optional uint64 requestId              = 3;                    // Identifier to associate the request to a response 
            optional TPPayload payload             = 4;                    // serialized representation of a TP message
            optional uint64 durability             = 5;                    // life time of message - used from backend 
           optional DataContainer dataPayload      = 6;**   
        }
    

    package com.fleetboard.tp.backend.protobuf;    
    option java_package = "com.fleetboard.tp.proto.backend";
    
        message DataContainer {
            required DeviceApplication application = 1; // The container's recipient (MT) or sender (MO)
            required string fileName = 2;               // File name (no path), length up to 255
            required uint64 fileTime = 3;               // File time as ms since 1970-01-01 00:00 UTC
        }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Marc Gravell    7 年前

    完全限定导入文件中的名称:

    com.fleetboard.tp.backend.protobuf.DataContainer
    

    .com.fleetboard.tp.backend.protobuf.DataContainer
    

    .

    你也可以 尝试

    backend.protobuf.DataContainer
    

    (因为两者都有 com.fleetboard.tp. 前缀)