java.lang.VerifyError: class org.elasticsearch.transport.Netty3Plugin overrides final method onModule

Viewed 1928

I am trying to create an ElasticSearch TransportClient using ElasticSearch 5.4.0. The client is created as follows:

@SuppressWarnings({ "resource", "unchecked" })
private static Client getTransportClient() {

    try {
        InetSocketTransportAddress inetAddress = new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300);
        client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(inetAddress);
    } catch (UnknownHostException e) {
        LOGGER.log(Level.WARNING, e.getMessage());
    }

    return client;
}

Now, when running, I get the following error:

Exception in thread "main" java.lang.VerifyError: class org.elasticsearch.transport.Netty3Plugin overrides final method onModule.(Lorg/elasticsearch/common/network/NetworkModule;)V
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<clinit>(PreBuiltTransportClient.java:54)
at org.personal.elastic.twitter.ElasticUtil.getTransportClient(ElasticUtil.java:65)
at org.personal.elastic.twitter.ElasticUtil.indexTweet(ElasticUtil.java:42)
at org.personal.elastic.twitter.TweetHunter.main(TweetHunter.java:39)

By the look of the error, it seems like some dependency conflict issue (Netty3Plugin?). In that regard, I would like to provide a snippet from my pom.xml for the ElasticSearch and Transport client dependencies:

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>5.4.0</version>
</dependency>

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>5.0.0-beta1</version>
</dependency>

Please let me know, what could be wrong (either with my maven dependencies or API usage)? I may try to go back use older version of ElasticSearch (2.x, maybe?), but, I don't want to... Help is appreciated!

0 Answers
Related