执行 HttpSolrClient solr = new HttpSolrClient("http://localhost:8983/solr/mycore") 时出现
java.lang.VerifyError: Cannot acquires from Final class
异常;
我使用 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)
最佳答案
我的 .m2 文件夹中有 2 个 httpcore 库(来自 axis2 1.6.2 的 httpcore 4.0 和来自 solrj 5.5.0 的 httpcore 4.4.1)。删除 httpcore 4.0 帮助我解决了这个问题。原因是httpcore 4.0中的org.apache.http.params.BasicHttpParams
类是final类。
关于java - solrj 5.5.0 和 java 1.7 出现验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912018/