3

Person レコードを Avro IDL ( person.avdl )として定義しました。

@namespace("net.tzolov.avro.extend")
protocol PersonProtocol {
    record Person {
        string firstName;
        string lastName;
    }     
}

私はJavaファイルを生成しているので、これはPersonProtocol.javaとPerson.javaを生成しています。PersonProtocol.java は空のファイルです。このファイルの生成を除外する方法はありますか...

4

1 に答える 1

6

Avro IDL はプロトコルを定義するため、このファイルの生成を除外することはできません(詳細はこちらを参照)。

Avro IDL 言語を提供する RPC を使用していないため、PersonProtocol.java は空です

例えば:

@namespace("net.tzolov.avro.extend")
protocol PersonProtocol {
 record Person {
    string firstName;
    string lastName;
 }

 string printMessage(string theMessage);    
}

コード生成を使用すると、RPC メソッドを定義する次の特定の行を取得できます。

void printMessage(java.lang.CharSequence theMessage, org.apache.avro.ipc.Callback<java.lang.CharSequence> callback) throws java.io.IOException;

データを保存するだけの場合は、avro スキーマ (avsc) を使用する必要があります。

于 2013-05-08T12:49:30.757 に答える