Ошибка проверки с solrj 5.5.0 и java 1.7

#java #solr #solrj #verifyerror

#java #solr #solrj #ошибка проверки

Вопрос:

Я получаю java.lang.VerifyError: Cannot inherit from final class исключение при выполнении HttpSolrClient solr = new HttpSolrClient("http://localhost:8983/solr/mycore");

Я использую SolrJ 5.5.0 с Java 1.7. Кроме этого, я использую commons-httpclient 3.1. Это подробная ошибка, которую я получаю:

 Handler processing failed; nested exception is java.lang.VerifyError:     org/apache/http/params/SyncBasicHttpParams] with root cause
java.lang.VerifyError: org/apache/http/params/SyncBasicHttpParams
at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:158)
at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:466)
at org.apache.solr.client.solrj.impl.HttpClientUtil.setFollowRedirects(HttpClientUtil.java:290)
at org.apache.solr.client.solrj.impl.HttpClientConfigurer.configure(HttpClientConfigurer.java:58)
at org.apache.solr.client.solrj.impl.HttpClientUtil.configureClient(HttpClientUtil.java:149)
at org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUtil.java:125)
at org.apache.solr.client.solrj.impl.HttpSolrClient.<init>(HttpSolrClient.java:188)
at org.apache.solr.client.solrj.impl.HttpSolrClient.<init>(HttpSolrClient.java:161)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
  

Ответ №1:

В моей папке .m2 было 2 библиотеки httpcore (httpcore 4.0 из axis2 1.6.2 и httpcore 4.4.1 из solrj 5.5.0). Удаление httpcore 4.0 помогло мне устранить проблему. Причина org.apache.http.params.BasicHttpParams в том, что класс в httpcore 4.0 является конечным классом.