16

私は過去6か月からawsを使用しており、バッチリクエストをfirehoseに送信するアプリケーションを開発しました。今日まで問題なく動作していましたが、ローカル システムに再デプロイすると、java.lang.ClassNotFoundException: com.amazonaws.ClientConfigurationFactory. このエラーの意味はわかっています。しかし、私の質問は、なぜ今日この例外を受け取ったのですか? 私は自分のプロジェクトで次の依存関係を使用しています:

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
    <!--    <version>1.10.72</version> --> // I used this version today only for testing purpose
        <version>1.10.6</version>
    </dependency>
    <!-- <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>1.10.71</version>
    </dependency> -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-core</artifactId>
        <version>1.10.37</version>
        <optional>false</optional>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-kinesis</artifactId>
        <version>RELEASE</version>
    </dependency>

そして、私はClientConfigurationFactoryクラスを検索しましたが、どこにも見つかりませんでした(どこでも私の依存関係を意味します)。

私の質問は、このクラスがどこにあり、なぜ今日だけこのエラーが発生したのですか? 初期の開発時 (6 か月前) にこのエラーに直面しなかったためです。今日、依存関係/コードを変更していません。そして、私は自分のプロジェクトでこのクラスを使用していません (aws-sdk内部で使用していたのではないかと疑っています)。

注:依存関係を見逃していませんか? と尋ねることはできません。以前は正常に動作していたからです。

ご不明な点がございましたらコメントください。ありがとう。

4

1 に答える 1

23

これは、含めている AWS SDK のバージョンが一致していないことが原因である可能性が最も高いです。SDK バージョン 1.10.6、1.10.71、1.10.37、および RELEASE の組み合わせを使用しています。あなたがやっているように、バージョンを混在させるのに問題があることを求めています。それらをすべて同じバージョンに変更すると、問題が解決する可能性があります。

于 2016-04-22T14:21:34.117 に答える