Those Spi classes rely on a configuration file that gets stored in the
META-INF folder. I'm not familiar with who OSGI works, but I'm pretty
sure that failure is because the file
META-INF/services/org.apache.lucene.codecs.Codec (you'll see it in the
lucene-core jar) can't be found
-Mike
On 11/22/2014 10:14 PM, Danesh Kuruppu wrote:
Hi all,
I am using solr version 4.7.2. I need to use EmbeddedSolrServer. I am
getting following error while initializing the coreContainer
Exception in thread "Thread-15" java.lang.NoClassDefFoundError: Could not
initialize class org.apache.lucene.codecs.Codec
at
org.apache.solr.core.SolrResourceLoader.reloadLuceneSPI(SolrResourceLoader.java:186)
at
org.apache.solr.core.SolrResourceLoader.<init>(SolrResourceLoader.java:122)
at
org.apache.solr.core.SolrResourceLoader.<init>(SolrResourceLoader.java:236)
at org.apache.solr.core.CoreContainer.<init>(CoreContainer.java:136)
In my case, I create a osgi bundle for solr. when I check the bundle, class
is in the bundle.
Set dependencies added ,
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers</artifactId>
<version>3.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-highlighter</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-memory</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queries</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-snowball</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-misc</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-spellchecker</artifactId>
<version>3.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>4.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-codecs</artifactId>
<version>4.7.2</version>
</dependency>
Code:
CoreContainer coreContainer = new CoreContainer(solrHome.getPath());
coreContainer.load();
this.server = new EmbeddedSolrServer(coreContainer, "");
Could not find the wrong.
Please help me.
Thanks
Danesh