# java.lang.NoClassDefFoundError: Could not initialize class com.twitter.finagle.stats.DefaultStatsReceiver$

**URL:** <https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347>\
**Category:** Elasticsearch\
**Created:** [February 24, 2018, 8:22pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347 "2018-02-24T20:22:47Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![jss1clist](https://avatars.discourse-cdn.com/v4/letter/j/48db29/32.png) [@jss1clist](https://discuss.elastic.co/u/jss1clist)\
**Post date:** [February 24, 2018, 8:22pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347/1 "2018-02-24T20:22:47Z")

</div>

Got the following error when executing our custom elasticsearch plugin.

```
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.twitter.finagle.stats.DefaultStatsReceiver$
        at com.twitter.finagle.stats.DefaultStatsReceiver.scope(LoadedStatsReceiver.scala) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.discoveryapi.client.servicemetrics.ZipkinAPITracer.getTracer(ZipkinAPITracer.java:235) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.discoveryapi.client.servicemetrics.ZipkinAPITracer.clientSend(ZipkinAPITracer.java:98) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.discoveryapi.client.MetricsServiceDiscoveryLookup.lookupService(MetricsServiceDiscoveryLookup.java:55) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.WeURLProviderImpl$2.invoke(WeURLProviderImpl.java:93) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.WeURLProviderImpl$DefaultInvocationHandler.invoke(WeURLProviderImpl.java:153) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.WeURLProviderImpl.nextService(WeURLProviderImpl.java:90) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.WeURLProviderImpl.<init>(WeURLProviderImpl.java:69) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.WeURLProviderImpl.<init>(WeURLProviderImpl.java:57) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.LazyWeURLProviderImpl$1.get(LazyWeURLProviderImpl.java:53) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.LazyWeURLProviderImpl$1.get(LazyWeURLProviderImpl.java:49) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:160) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.LazyWeURLProviderImpl.get(LazyWeURLProviderImpl.java:111) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.http.impl.LazyWeURLProviderImpl.get(LazyWeURLProviderImpl.java:42) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.commons.http.jersery.JerseyURLProvider.<init>(JerseyURLProvider.java:56) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.commons.http.jersery.JerseyURLProvider.create(JerseyURLProvider.java:84) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.sts.client.impl.StsServiceRESTClientImpl.getStsWebTarget(StsServiceRESTClientImpl.java:330) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.sts.client.impl.StsServiceRESTClientImpl.getValidationCert(StsServiceRESTClientImpl.java:173) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.sts.IdentityTokenJWT.getValidationCertImpl(IdentityTokenJWT.java:284) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.sts.IdentityTokenJWT.access$000(IdentityTokenJWT.java:70) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.sts.IdentityTokenJWT$1.create(IdentityTokenJWT.java:97) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.sts.IdentityTokenJWT$1.create(IdentityTokenJWT.java:94) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        at com.issinc.we.utils.factory.FactoryUtils.lambda$memoize$0(FactoryUtils.java:62) ~[we-elastic-svc-2.1.3-SNAPSHOT.jar:?]
        ... 64 more

```

I verified that com.twitter.finagle.stats.DefaultStatsReceiver is included in the plugin jar. Any idea on what could be going on?

---

<div class="post-metadata">

**Author:** ![rjernst](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rjernst/32/6363_2.png) [@rjernst](https://discuss.elastic.co/u/rjernst)\
**Post date:** [February 24, 2018, 8:39pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347/2 "2018-02-24T20:39:44Z")

</div>

Can you please provide more information about how you build your plugin? Do you have an example binary that can be inspected?

---

<div class="post-metadata">

**Author:** ![jss1clist](https://avatars.discourse-cdn.com/v4/letter/j/48db29/32.png) [@jss1clist](https://discuss.elastic.co/u/jss1clist)\
**Post date:** [February 24, 2018, 8:57pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347/3 "2018-02-24T20:57:03Z")

</div>

It's a fat jar with all the classes, properties files, spring configs, etc. included.

 ![elasticsearch-classnotfound-error](https://us1.discourse-cdn.com/elastic/original/3X/b/0/b0018acbaf63dccceeaa05b84070e382ec29a480.jpg)

We're on version 6.2.2.

---

<div class="post-metadata">

**Author:** ![jss1clist](https://avatars.discourse-cdn.com/v4/letter/j/48db29/32.png) [@jss1clist](https://discuss.elastic.co/u/jss1clist)\
**Post date:** [February 25, 2018, 4:00pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347/4 "2018-02-25T16:00:37Z")

</div>

It seems like ES6 has problem loading anonymous inner class (DefaultStatsReceiver in this case). Any suggestion to get around it?

---

<div class="post-metadata">

**Author:** ![rjernst](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rjernst/32/6363_2.png) [@rjernst](https://discuss.elastic.co/u/rjernst)\
**Post date:** [February 25, 2018, 4:44pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347/5 "2018-02-25T16:44:11Z")

</div>

Elastic [does not support](https://www.elastic.co/blog/elasticsearch-the-server) embedding the server. You should instead launch Elasticsearch using the standard distribution start script and connect to it with the java client.

---

<div class="post-metadata">

**Author:** ![jss1clist](https://avatars.discourse-cdn.com/v4/letter/j/48db29/32.png) [@jss1clist](https://discuss.elastic.co/u/jss1clist)\
**Post date:** [February 25, 2018, 5:53pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347/6 "2018-02-25T17:53:54Z")

</div>

Can you elaborate? We install elasticsearch via docker and run it as a server. We then install our plugin using the '_bin/elasticsearch-plugin install_' command. The plugin, which connects to our existing services, goes through all the ES security and bootstrap checks.

How should we do it differently?

---

<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:** [March 25, 2018, 5:53pm UTC](https://discuss.elastic.co/t/java-lang-noclassdeffounderror-could-not-initialize-class-com-twitter-finagle-stats-defaultstatsreceiver/121347/7 "2018-03-25T17:53:54Z")

</div>

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