# NoClassDefFoundError InternalLoggerFactory on tomcat start

**URL:** <https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296>\
**Category:** Elasticsearch\
**Created:** [September 28, 2018, 6:36am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296 "2018-09-28T06:36:41Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anjana\_Surendrababu](https://avatars.discourse-cdn.com/v4/letter/a/b19c9b/32.png) [@Anjana\_Surendrababu](https://discuss.elastic.co/u/Anjana_Surendrababu)\
**Post date:** [September 28, 2018, 6:36am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/1 "2018-09-28T06:36:41Z")

</div>

My project was using a very old version of elasticsearch (1.7.1). I am trying to upgrade it to 6.4.0

Following are the jars I added newly.  
elasticsearch-6.4.0.jar   
elasticsearch-core-6.4.0.jar   
elasticsearch-x-content-6.4.0.jar   
transport-6.4.0.jar   
transport-netty4-client-6.4.0.jar   
log4j-api-2.11.0.jar   
log4j-core-2.11.0.jar  
lucene-core-7.4.0.jar  
reindex-client-6.4.0.jar   
percolator-client-6.4.0.jar   
lang-mustache-client-6.4.0.jar   
parent-join-client-6.4.0.jar   
rank-eval-client-6.4.0.jar   
hppc-0.8.1.jar

During my tomcat start I am getting this exception

java.lang.NoClassDefFoundError: io/netty/util/internal/logging/InternalLoggerFactory  
at org.elasticsearch.transport.Netty4Plugin.(Netty4Plugin.java:48)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)  
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)  
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  
at org.elasticsearch.plugins.PluginsService.loadPlugin(PluginsService.java:602)  
at org.elasticsearch.plugins.PluginsService.(PluginsService.java:112)  
at org.elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:108)  
at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:133)  
at org.elasticsearch.client.transport.TransportClient.(TransportClient.java:283)  
at org.elasticsearch.transport.client.PreBuiltTransportClient.(PreBuiltTransportClient.java:128)  
at org.elasticsearch.transport.client.PreBuiltTransportClient.(PreBuiltTransportClient.java:114)  
at org.elasticsearch.transport.client.PreBuiltTransportClient.(PreBuiltTransportClient.java:104)  
at com.virima.indexing.IndexUtils.initializeESConnection(IndexUtils.java:61)

And my initilization code is as below

Settings settings = Settings.builder()  
.put("cluster.name", "myClusterName").build();  
TransportClient client = new PreBuiltTransportClient(settings)  
.addTransportAddress(new TransportAddress(InetAddress.getByName("host1"), 9300))  
.addTransportAddress(new TransportAddress(InetAddress.getByName("host2"), 9300));

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [September 28, 2018, 8:13am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/2 "2018-09-28T08:13:40Z")

</div>

See [https://www.elastic.co/blog/elasticsearch-the-server](https://www.elastic.co/blog/elasticsearch-the-server)

---

<div class="post-metadata">

**Author:** ![Anjana\_Surendrababu](https://avatars.discourse-cdn.com/v4/letter/a/b19c9b/32.png) [@Anjana\_Surendrababu](https://discuss.elastic.co/u/Anjana_Surendrababu)\
**Post date:** [September 28, 2018, 8:20am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/3 "2018-09-28T08:20:00Z")

</div>

I went through the blog, I am sorry but I dint understand how it helps me in this

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [September 28, 2018, 8:41am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/5 "2018-09-28T08:41:50Z")

</div>

> [@Anjana\_Surendrababu](#):
>
> I am sorry but I dint understand how it helps me in this

Apologies, I assumed you were trying to start a full elasticsearch service inside Tomcat rather than just the elasticsearch client.

We are evolving Java clients away from use of the TransportClient so that we can reduce these sorts of dependencies on core elasticsearch server classes.  
The High Level Rest Client is the new replacement for the TransportClient and the docs for managing dependencies are [here](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high.html).

---

<div class="post-metadata">

**Author:** ![Anjana\_Surendrababu](https://avatars.discourse-cdn.com/v4/letter/a/b19c9b/32.png) [@Anjana\_Surendrababu](https://discuss.elastic.co/u/Anjana_Surendrababu)\
**Post date:** [September 28, 2018, 10:14am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/6 "2018-09-28T10:14:09Z")

</div>

Thanks for the response. So you are suggesting me using REST Client will be better than debugging this with TransportClient?

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [September 28, 2018, 10:51am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/7 "2018-09-28T10:51:37Z")

</div>

It will put you on the right path. Transport client will be [deprecated in 7.0](https://www.elastic.co/guide/en/elasticsearch/client/java-api/master/transport-client.html)

---

<div class="post-metadata">

**Author:** ![Anjana\_Surendrababu](https://avatars.discourse-cdn.com/v4/letter/a/b19c9b/32.png) [@Anjana\_Surendrababu](https://discuss.elastic.co/u/Anjana_Surendrababu)\
**Post date:** [October 3, 2018, 10:12am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/8 "2018-10-03T10:12:50Z")

</div>

I am using high level rest client now, I have lucene 7.1 in my classpath, but I am getting the following error

Exception in thread "main" java.lang.NoSuchFieldError: LUCENE\_6\_0\_0  
at org.elasticsearch.Version.(Version.java:47)  
at org.elasticsearch.common.io.stream.StreamInput.(StreamInput.java:111)  
at org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper.(BytesReference.java:242)  
at org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper.(BytesReference.java:236)  
at org.elasticsearch.common.bytes.BytesReference.streamInput(BytesReference.java:76)  
at org.elasticsearch.action.admin.indices.create.CreateIndexRequest.innerToXContent(CreateIndexRequest.java:554)  
at org.elasticsearch.action.admin.indices.create.CreateIndexRequest.toXContent(CreateIndexRequest.java:542)

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [October 3, 2018, 10:16am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/9 "2018-10-03T10:16:20Z")

</div>

> [@Anjana\_Surendrababu](#):
>
> UCENE\_6\_0\_0

Looks like your Lucene version is incorrect.

---

<div class="post-metadata">

**Author:** ![Anjana\_Surendrababu](https://avatars.discourse-cdn.com/v4/letter/a/b19c9b/32.png) [@Anjana\_Surendrababu](https://discuss.elastic.co/u/Anjana_Surendrababu)\
**Post date:** [October 3, 2018, 10:25am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/10 "2018-10-03T10:25:14Z")

</div>

Dependecy file says Lucene-core 7.4.0, that only I added

---

<div class="post-metadata">

**Author:** ![Mark\_Harwood](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mark_harwood/32/10538_2.png) [@Mark\_Harwood](https://discuss.elastic.co/u/Mark_Harwood)\
**Post date:** [October 3, 2018, 10:29am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/11 "2018-10-03T10:29:15Z")

</div>

> [@Anjana\_Surendrababu](#):
>
> java.lang.NoSuchFieldError: LUCENE\_6\_0\_0  
> at org.elasticsearch.Version.(Version.java:47)

If your classpath is setup correctly and you don't have other Lucene versions floating around then the above error should not happen because you should see [this](https://github.com/apache/lucene-solr/blob/branch_7_4/lucene/core/src/java/org/apache/lucene/util/Version.java#L39)

---

<div class="post-metadata">

**Author:** ![Anjana\_Surendrababu](https://avatars.discourse-cdn.com/v4/letter/a/b19c9b/32.png) [@Anjana\_Surendrababu](https://discuss.elastic.co/u/Anjana_Surendrababu)\
**Post date:** [October 4, 2018, 10:52am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/12 "2018-10-04T10:52:48Z")

</div>

Hi, that issue seems to be fine, Any help on this [How to add multiple types to an index Elasticsearch 6.4](https://discuss.elastic.co/t/how-to-add-multiple-types-to-an-index-elasticsearch-6-4/151032)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 1, 2018, 10:52am UTC](https://discuss.elastic.co/t/noclassdeffounderror-internalloggerfactory-on-tomcat-start/150296/13 "2018-11-01T10:52:50Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
