Hi Hoss, I created a wrapper class, compiled a jar and included an org.apache.lucene.codecs.Codec file in META-INF/services in the jar file with an entry for the wrapper class :HTPostingsFormatWrapper. I created a collection1/lib directory and put the jar there. (see below)
I'm getting the dread "ClassCastException Class.asSubclass(Unknown Source" error (See below). This is looking like a complex classloader issues. Should I put the file somewhere else and/or declare a lib directory in solrconfig.xml? Any suggestions on how to troubleshoot this?. Tom -------------------- error: by: java.lang.ClassCastException: class org.apache.lucene.codecs.HTPostingsFormatWrapper at java.lang.Class.asSubclass(Unknown Source) at org.apache.lucene.util.SPIClassIterator.next(SPIClassIterator.java:141) ------------------- Contents of the jar file: C:\d\solr\lucene_solr_4_10_2\solr\example\solr\collection1\lib>jar -tvf HTPostingsFormatWrapper.jar 25 Thu Mar 12 10:37:04 EDT 2015 META-INF/MANIFEST.MF 1253 Thu Mar 12 10:37:04 EDT 2015 org/apache/lucene/codecs/HTPostingsFormatWrapper.class 1276 Thu Mar 12 10:49:06 EDT 2015 META-INF/services/org.apache.lucene.codecs.Codec ---------------- Contents of META-INF/services/org.apache.lucene.codecs.Codec in the jar file: org.apache.lucene.codecs.lucene49.Lucene49Codec org.apache.lucene.codecs.lucene410.Lucene410Codec # tbw adds custom wrapper here per Hoss e-mail org.apache.lucene.codecs.HTPostingsFormatWrapper ------------------------- log file excerpt with stack trace: 12821 [main] INFO org.apache.solr.core.CoresLocator – Looking for core definitions underneath C:\d\solr\lucene_solr_4_10_2\solr\example\solr 12838 [main] INFO org.apache.solr.core.CoresLocator – Found core collection1 in C:\d\solr\lucene_solr_4_10_2\solr\example\solr\collection1\ 12839 [main] INFO org.apache.solr.core.CoresLocator – Found 1 core definitions 12841 [coreLoadExecutor-5-thread-1] INFO org.apache.solr.core.SolrResourceLoader – new SolrResourceLoader for directory: 'C:\d\solr\lucene_solr_4_10_2\solr\example\solr\collection1\' 12842 [coreLoadExecutor-5-thread-1] INFO org.apache.solr.core.SolrResourceLoader – Adding 'file:/C:/d/solr/lucene_solr_4_10_2/solr/example/solr/collection1/lib/HTPostingsFormatWrapper.jar' to classloader 12870 [coreLoadExecutor-5-thread-1] ERROR org.apache.solr.core.CoreContainer – Error creating core [collection1]: class org.apache.lucene.codecs.HTPostingsFormatWrapper java.lang.ClassCastException: class org.apache.lucene.codecs.HTPostingsFormatWrapper at java.lang.Class.asSubclass(Unknown Source) at org.apache.lucene.util.SPIClassIterator.next(SPIClassIterator.java:141) at org.apache.lucene.util.NamedSPILoader.reload(NamedSPILoader.java:65) at org.apache.lucene.codecs.Codec.reloadCodecs(Codec.java:119) at org.apache.solr.core.SolrResourceLoader.reloadLuceneSPI(SolrResourceLoader.java:206) at org.apache.solr.core.SolrResourceLoader.<init>(SolrResourceLoader.java:142) at org.apache.solr.core.ConfigSetService$Default.createCoreResourceLoader(ConfigSetService.java:144) at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:58) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:489) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:255) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:249) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) On Wed, Jan 14, 2015 at 6:05 PM, Chris Hostetter <hossman_luc...@fucit.org> wrote: > > : As a foolish dev (not malicious I hope!), I did mess around with > something > : like this once; I was writing my own Codec. I found I had to create a > file > : called META-INF/services/org.apache.lucene.codecs.Codec in my solr > plugin jar > : that contained the fully-qualified class name of my codec: I guess this > : registers it with the SPI framework so it can be found by name? I'm not > > Yep, that's how SPI works - the important bits are mentioned/linked in the > PostingsFormat (and other SPI related classes in lucene) javadocs... > > > https://lucene.apache.org/core/4_10_2/core/org/apache/lucene/codecs/PostingsFormat.html > > > https://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html?is-external=true > > > > > > -Hoss > http://www.lucidworks.com/ >