LoginSignup
0
1

More than 5 years have passed since last update.

ElasticSearchで java.lang.ClassNotFoundExceptionが発生した場合の対応策

Posted at

Spring BootとElasticsearchを連携したアプリケーションを作成中し、Document APIを叩いたところ、
java.lang.ClassNotFoundException: org.elasticsearch.common.xcontent.LoggingDeprecationHandler
が発生したので解決策をメモしておきます。

根本原因

エラーの内容の通り、原因はLoggingDeprecationHandlerというクラスが存在していないためですが、
なぜClassが存在しないかというと、依存性が不足しているからです。

当初mavenの依存性にはElasticsearchの依存性として次のように記述していました。

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>6.3.2</version>
        </dependency>

しかしこのorg.elasticsearch.clientにはLoggingDeprecationHandlerが含まれておらず、
正常動作のためにはorg.elasticsearchも依存性に含める必要がありました。

解決策

以下のようにpomファイルを修正することで、上記のExceptionが発生せずに動作させることができるようになりました。

        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>6.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>6.3.2</version>
        </dependency>

参考

Github: java.lang.ClassNotFoundException: org.elasticsearch.common.xcontent.NamedXContentRegistry #26959

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1