2

AVPR の読み取りは簡単です。

Protocol protocol = Protocol.parse(new File("ht-proto.avpr"));

ただし、これは IDL ファイル (AVDL) では機能しません。

次のタスクを達成できるように AVDL ファイルを読み取る方法ですが、AVPR の代わりに AVDL を使用します。

public static void main (String[] args)  {
     Main.class.getResourceAsStream("net/protocol_man.avdl");
     Protocol protocol  =
           Protocol.parse(Main.class.getResourceAsStream("net/protocol_man.avpr"));
                                                   //this doesnt work for AVDL       
 }
4

1 に答える 1

0

Mavenで作業している場合。次のプラグインを追加できます。

これにより、Java ソースが作成され、それを使用してほぼすべてのことができます。

つまり、生成されたクラスの 1 つを後で参照できるということです。

Schema Event.$SCHEMA を要求します。

  <plugin>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-maven-plugin</artifactId>
            <version>1.7.3</version>
            <executions>
                <execution>
                    <id>schemas</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>idl-protocol</goal>
                    </goals>
                    <configuration>
                        <includes>
                            <include>net/protocol_man.avdl</include>
                        </includes>
                        <fieldVisibility>PRIVATE</fieldVisibility>
                        <sourceDirectory>src/main/resources</sourceDirectory>
                        <outputDirectory>${project.build.directory}/generated-sources/java
                        </outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2014-02-11T15:51:10.293 に答える