【问题标题】:Error while importing another proto file导入另一个 proto 文件时出错
【发布时间】:2018-02-10 23:46:41
【问题描述】:

当我尝试编译 proto 文件以转换为 .java 时出现错误。
你能指出我错过了什么吗?

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.

Payload.proto

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;**   
    }

BackendCommunicationService.proto

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
    }

【问题讨论】:

    标签: protocol-buffers protobuf-net protoc proto


    【解决方案1】:

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

    com.fleetboard.tp.backend.protobuf.DataContainer
    

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

    . 确保它从根开始)

    您也可以尝试只使用不相交的部分,但我不知道它是否会起作用:

    backend.protobuf.DataContainer
    

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

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 2014-02-03
      • 2020-08-21
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      相关资源
      最近更新 更多