# Logstash java link error

**URL:** <https://discuss.elastic.co/t/logstash-java-link-error/133690>\
**Category:** Logstash\
**Created:** [May 29, 2018, 1:51pm UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690 "2018-05-29T13:51:56Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Toony](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/toony/32/18458_2.png) [@Toony](https://discuss.elastic.co/u/Toony)\
**Post date:** [May 29, 2018, 1:51pm UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690/1 "2018-05-29T13:51:56Z")

</div>

I encounter a problem starting logstash.

Uncompressing 6.X.tar.gz (i.e not only the last 6.2.4 version of logstash) I have the following error message:

[ERROR] 2018-05-29 15:45:29.898 [main] Logstash - java.lang.IllegalStateException: org.jruby.exceptions.RaiseException: (NameError) cannot link Java class org.apache.http.client.methods.HttpRequestBase, probable missing dependency: org/apache/http/HttpRequest

Is there someone to explain this error ?  
For instance, I tryed to put the httpclient-4.0.2 or httpclient-4.5.2 in the logstash-core/lib/jars directory without any result...

Thanks

---

<div class="post-metadata">

**Author:** ![Toony](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/toony/32/18458_2.png) [@Toony](https://discuss.elastic.co/u/Toony)\
**Post date:** [May 29, 2018, 2:24pm UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690/2 "2018-05-29T14:24:57Z")

</div>

Found a workaround:

cp ~/.m2/repository/org/apache/httpcomponents/httpcore/4.4.8/httpcore-4.4.8.jar ~/elastic-stack/logstash-6.2.4/logstash-core/lib/jars/

and

cp ~/.m2/repository/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.jar ~/elastic-stack/logstash-6.2.4/logstash-core/lib/jars/

But it is stange to need that...  
Is tar.gz build differently from linux packages on that point ?

---

<div class="post-metadata">

**Author:** ![Toony](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/toony/32/18458_2.png) [@Toony](https://discuss.elastic.co/u/Toony)\
**Post date:** [May 29, 2018, 2:54pm UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690/3 "2018-05-29T14:54:07Z")

</div>

Not sufficient further usage of logstash is missing dependencies ...

error extract:  
last error: cannot load Java class org.apache.http.client.utils.SSLConnectionSocketFactory

I think it is a packaging bug ...

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [May 29, 2018, 3:34pm UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690/4 "2018-05-29T15:34:51Z")

</div>

Which version of Java are you using? Which operating system?

---

<div class="post-metadata">

**Author:** ![Toony](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/toony/32/18458_2.png) [@Toony](https://discuss.elastic.co/u/Toony)\
**Post date:** [May 29, 2018, 3:57pm UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690/5 "2018-05-29T15:57:54Z")

</div>

jdk:

openjdk version "1.8.0\_171"  
OpenJDK Runtime Environment (build 1.8.0\_171-8u171-b11-0ubuntu0.16.04.1-b11)  
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Système

Linux MachineName 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86\_64 x86\_64 x86\_64 GNU/Linux

Please note the error is more detailed on 6.0.0:

NameError: cannot load Java class org.apache.http.client.methods.HttpRequestBase  
for\_name at org/jruby/javasupport/JavaClass.java:286  
get\_proxy\_class at org/jruby/javasupport/JavaUtilities.java:34  
block in java\_import at uri:classloader:/jruby/java/core\_ext/object.rb:49  
map at org/jruby/RubyArray.java:2486  
java\_import at uri:classloader:/jruby/java/core\_ext/object.rb:36  
 at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/manticore-0.6.1-java/lib/manticore/java\_extensions.rb:1  
require at org/jruby/RubyKernel.java:955  
(root) at uri:classloader:/jruby/kernel/kernel.rb:1  
module:require\_relative at uri:classloader:/jruby/kernel/kernel.rb:13  
 at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/manticore-0.6.1-java/lib/manticore.rb:44  
require at org/jruby/RubyKernel.java:955  
require at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/polyglot-0.3.5/lib/polyglot.rb:65  
 at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/manticore-0.6.1-java/lib/manticore.rb:14  
require at org/jruby/RubyKernel.java:955  
require at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/polyglot-0.3.5/lib/polyglot.rb:65  
 at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/elasticsearch-transport-5.0.4/lib/elasticsearch/transport/transport/http/manticore.rb:1  
require at org/jruby/RubyKernel.java:955  
require at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/polyglot-0.3.5/lib/polyglot.rb:65  
 at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/elasticsearch-transport-5.0.4/lib/elasticsearch/transport/transport/http/manticore.rb:1  
require at org/jruby/RubyKernel.java:955  
require at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/polyglot-0.3.5/lib/polyglot.rb:65  
 at /home/tony/Documents/temporaire/logstash-6.0.0/logstash-core/lib/logstash/elasticsearch\_client.rb:1  
require at org/jruby/RubyKernel.java:955  
require at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/polyglot-0.3.5/lib/polyglot.rb:65  
 at /home/tony/Documents/temporaire/logstash-6.0.0/logstash-core/lib/logstash/elasticsearch\_client.rb:5  
require at org/jruby/RubyKernel.java:955  
require at /home/tony/Documents/temporaire/logstash-6.0.0/vendor/bundle/jruby/2.3.0/gems/polyglot-0.3.5/lib/polyglot.rb:65  
 at /home/tony/Documents/temporaire/logstash-6.0.0/logstash-core/lib/logstash/config/modules\_common.rb:1  
require at org/jruby/RubyKernel.java:955  
 at /home/tony/Documents/temporaire/logstash-6.0.0/logstash-core/lib/logstash/config/modules\_common.rb:3  
require at org/jruby/RubyKernel.java:955  
 at /home/tony/Documents/temporaire/logstash-6.0.0/lib/bootstrap/environment.rb:70

Thanks for your help 😉

---

<div class="post-metadata">

**Author:** ![Toony](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/toony/32/18458_2.png) [@Toony](https://discuss.elastic.co/u/Toony)\
**Post date:** [May 30, 2018, 11:32am UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690/6 "2018-05-30T11:32:19Z")

</div>

Found the problem with a real chance doing really something else than palying with logstash !

When I was building a maven project, I found a very strange error message saying:

[ERROR] error reading /home/user/.m2/repository/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar; error in opening zip file

So I tryed to rm the bad jar file and then thought to launch logstash again to see what would happen ...

And logstash worked ???

Then I grepped the logstash dir to find that some scripts refering to .m2 ???

> > > vendor/bundle/jruby/2.3.0/gems/jar-dependencies-0.3.11/lib/jars/maven\_settings.rb: settings = File.join( Jars.user\_home, '.m2', 'settings.xml' )

Logsatsh seems to use .m2 in its path and then override the httpclient jar shipped with logstash manticore-0.6.1-java/lib...

I think this discovery is very puzzling ...  
Is it safe to do that ?

---

<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:** [June 27, 2018, 11:32am UTC](https://discuss.elastic.co/t/logstash-java-link-error/133690/7 "2018-06-27T11:32:21Z")

</div>

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