elasticssearch报 NoClassDefFoundError: io/netty/util/NettyRuntime错误

网上找了很多都没能解决,这里先说下网上的解决方案吧
1、在初始化transportClient方法前添加

System.setProperty("es.set.netty.runtime.available.processors", "false");

2、将elasticsearch的config添加

Settings settings = Settings.builder()
                .put("cluster.name", this.esName)
                .put("client.transport.sniff", true)
                .put("transport.type","netty3")
                .put("http.type", "netty3")
                .build();

后来发现网上的解决办法对我都没啥用,后来仔细看了下报错是找不到NettyRuntime这个类,然后用idea全局搜了下发现在org.elasticsearch.plugin:transport-netty4-client这个包下存在,然后再看了下依赖,结果冲突了,然后我再看了下自己的netty版本是4.1.6,4.1.6下是没有NettyRuntime这个类的所以发生了报错。
所以解决办法有多种,我这里直接又加了个依赖,其实你可以让netty和elasticsearch的版本对应就好了。
在pom中引用(解决)


            org.elasticsearch.plugin
            transport-netty4-client
            5.2.2
        

你可能感兴趣的:(elasticssearch报 NoClassDefFoundError: io/netty/util/NettyRuntime错误)