Hello,
I am running into a conflict with Solr and ElasticSearch. We are trying to add
support for Elastic Search 5.1.1 which requires Lucene 6.3.0 to an existing
system that uses Solr 5.2.3. At the moment I am using SolrJ 5.3.1 to talk to
the 5.2.3 Server. I was hoping I could just update the SolrJ libraries to 6.3.0
so the Lucene conflict goes away, but when I try to run my unit tests I'm
seeing this error:
java.util.ServiceConfigurationError: Cannot instantiate SPI class:
org.apache.lucene.codecs.simpletext.SimpleTextPostingsFormat
at
org.apache.lucene.util.NamedSPILoader.reload(NamedSPILoader.java:82)
at
org.apache.lucene.codecs.PostingsFormat.reloadPostingsFormats(PostingsFormat.java:132)
at
org.apache.solr.core.SolrResourceLoader.reloadLuceneSPI(SolrResourceLoader.java:237)
at
org.apache.solr.core.SolrResourceLoader.<init>(SolrResourceLoader.java:182)
at
org.apache.solr.core.SolrResourceLoader.<init>(SolrResourceLoader.java:142)
at
org.apache.solr.core.CoreContainer.<init>(CoreContainer.java:217)
at
com.rtn.iaf.catalog.test.SolrAnalyticClientTest.setUpBeforeClass(SolrAnalyticClientTest.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalAccessException: Class
org.apache.lucene.util.NamedSPILoader can not access a member of class
org.apache.lucene.codecs.simpletext.SimpleTextPostingsFormat with modifiers
"public"
at
sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
at java.lang.Class.newInstance(Class.java:436)
at
org.apache.lucene.util.NamedSPILoader.reload(NamedSPILoader.java:72)
... 22 more
Is it possible to talk to the 5.2.3 Server using SolrJ 6.3.0?
Here are the Solr Dependencies I have in my pom.xml:
<!-- Solr dependencies -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>6.3.0</version>
</dependency>
<!-- Required by embedded solr server -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>6.3.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-continuation</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-deploy</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-jmx</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-rewrite</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-servlets</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-util</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>hadoop-annotations</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
<exclusion>
<artifactId>hadoop-auth</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
<exclusion>
<artifactId>hadoop-common</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
<exclusion>
<artifactId>hadoop-hdfs</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
</exclusions>
</dependency>
Please let me know if you need any additional information.
Thank you!
- Jennifer