Alican Balik
Alican Balik

Reputation: 1294

Solrj - cannot inherit from final class error due to HTTPSolrServer

I have been using Solr version 4.10.2. I added solrj version 4.10.2 by using maven (pom.xml)

<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>4.10.2</version>
        <scope>compile</scope>
</dependency>

These are maven dependencies that are installed:

solr-solrj-4.10.2.jar
httpclient-4.3.1.jar
httpcore-4.3.jar
httpmime-4.3.1.jar
wstx-asl-3.2.7.jar
wstx-asl-3.2.7.jar
noggit-0.5.jar

When I define solr http path, l get and exception:

Exception in thread "main" java.lang.VerifyError: Cannot inherit from final class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:157)
    at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:447)
    at org.apache.solr.client.solrj.impl.HttpClientUtil.setFollowRedirects(HttpClientUtil.java:260)
    at org.apache.solr.client.solrj.impl.HttpClientConfigurer.configure(HttpClientConfigurer.java:60)
    at org.apache.solr.client.solrj.impl.HttpClientUtil.configureClient(HttpClientUtil.java:142)
    at org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUtil.java:118)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.<init>(HttpSolrServer.java:168)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.<init>(HttpSolrServer.java:141)
    at addIndex.main(addIndex.java:10)

This is how I define solr path:

HttpSolrServer server = new HttpSolrServer("http://localhost:8983/solr"); or

HttpSolrServer server = new HttpSolrServer("http://localhost:8983/solr/#/collection1");

Is there another way to make a connection with java project? What is the reason that I get this exception?

Upvotes: 0

Views: 639

Answers (1)

MatsLindh
MatsLindh

Reputation: 52902

If you're connecting to Solr (and using SolrJ as the client library), you're supposed to instantiate HttpSolrClient:

String urlString = "http://localhost:8983/solr/collection1";
SolrClient solr = new HttpSolrClient(urlString);

BTW: Anchors in URLs (such as #foo) is meant for clients only (such as browsers), and are not meant to be (and thus, isn't, usually) transmitted as part of the request.

Upvotes: 1

Related Questions