3

users@apex.incubator.apache.org からの再投稿

バージョン 0.9 プロトコルをサポートする新しい Kafka Operator を使用して単体テスト コードを実行したいと考えています。

このプロセスでは、Malhar-Kafka ライブラリ バージョン ( 3.3.1-incubating ) を含め、Apex エンジン (バージョン 3.3.0 ) をテスト/提供として使用しています。

コンパイルは正常に動作しますが、" java.lang.ClassNotFoundException: com.datatorrent.lib.util.KryoCloneUtils" 例外で単体テストが正しく実行されません。

Apex エンジンと統合された Kafka 0.9 オペレーターを使用する単体テストを実行するための推奨される方法は何ですか? Malhar-contrib ライブラリーの Kafka オペレーターは 0.9 に準拠していないと想定しています..

単体テスト コードは次のようになります。

クラス CassandraEventDetailsS​​treamingApp は、以下のコード スニペットで AbstractKafkaInputOperator を拡張します。

メソッド lma.getController(); で例外が発生します。

@Test
public void testApplication() throws IOException, Exception {
    try {
        LocalMode lma = LocalMode.newInstance();
        Configuration conf = new Configuration(false);
        conf.addResource(this.getClass().getResourceAsStream("/dag-test-props.xml"));
        lma.prepareDAG(new CassandraEventDetailsStreamingApp(), conf);
        LocalMode.Controller lc = lma.getController();
        lc.run();
    } catch (ConstraintViolationException e) {
        Assert.fail("constraint violations: " + e.getConstraintViolations());
    }
}
4

1 に答える 1

1

Apex-engine 、 apex-api の依存関係セクションから Malhar-library と Malhar-contrib の依存関係を除外することで、問題を解決できました。

これにより、Malhar の 3.3.1-incubating バージョンがクラスパスに追加され、続いて 3.3.1-incubating バージョンの Malhar-Kafka ライブラリが追加されました)。

于 2016-04-22T14:56:54.713 に答える