Awesome thank you very much and thanks for the very useful contribution.

Brendan

On Jun 19, 2008, at 12:52 AM, Noble Paul നോബിള്‍ नोब्ळ् wrote:

aah!. We always assumed that people put the custom jars in the
WEB-INF/lib folder of solr webapp and hence they are automatically in
the classpath we shall make the necessary changes  .
--Noble

On Thu, Jun 19, 2008 at 10:06 AM, Brendan Grainger
<[EMAIL PROTECTED]> wrote:
Hi,

I am actually providing the fully qualified classname in the configuration and I was still getting a ClassNotFoundException. If you look at the code in SolrResourceLoader they actually explicitly add the jars in solr- home/lib to
the classloader:

static ClassLoader createClassLoader(File f, ClassLoader loader) {
  if( loader == null ) {
    loader = Thread.currentThread().getContextClassLoader();
  }
  if (f.canRead() && f.isDirectory()) {
    File[] jarFiles = f.listFiles();
    URL[] jars = new URL[jarFiles.length];
    try {
      for (int j = 0; j < jarFiles.length; j++) {
        jars[j] = jarFiles[j].toURI().toURL();
        log.info("Adding '" + jars[j].toString() + "' to Solr
classloader");
      }
      return URLClassLoader.newInstance(jars, loader);
    } catch (MalformedURLException e) {
SolrException.log(log,"Can't construct solr lib class loader", e);
    }
  }
  log.info("Reusing parent classloader");
  return loader;
}


This seems to be me to be why my class is now found when I include my
utilities jar in solr-home/lib.

Thanks
Brendan

On Jun 18, 2008, at 11:49 PM, Noble Paul നോബിള്‍ नोब्ळ् wrote:

hi,
DIH does not load class using the SolrResourceLoader. It tries a
Class.forName() with the name you provide if it fails it prepends
"org.apache.solr.handler.dataimport." and retries.

This is true for not just transformers but also for Entityprocessor,
DataSource and Evaluator

The reason for doing so is that we do not use any of the 'solr.'
packages in DIH. All our implementations fall into the default package
and we can directly use them w/o the package name.

So , if you are writing your own implementations use the default
package or provide the fully qualified class name.

--Noble

On Thu, Jun 19, 2008 at 8:09 AM, Jon Baer <[EMAIL PROTECTED]> wrote:

Thanks. Yeah took me a while to figure out I needed to do something like transformer="com.mycompany.solr.MyTransformer" on the entity before it
would
work ...

- Jon

On Jun 18, 2008, at 1:51 PM, Brendan Grainger wrote:

Hi,

I set up the new DataimportHandler last night to replace some custom
import code I'd written and so far I'm loving it thank you.

I had one issue you might want to know about it. I have some solr
extensions I've written and packaged in a jar which I place in:

solr-home/lib

as per:



http://wiki.apache.org/solr/SolrPlugins#head-59e2685df65335e82f8936ed55d260842dc7a4dc

This works well for my handlers but a custom Transformer I wrote and packaged the same way was throwing a ClassNotFoundException. I tracked
it
down to the DocBuilder.loadClass method which was just doing a
Class.forName. Anyway, I fixed it for the moment by probably do
something
stupid and creating a SolrResourceLoader (which I imagine could be an instance variable, but at 3am I just wanted to get it working). Anyway,
this
fixes the problem:

@SuppressWarnings("unchecked")
static Class loadClass(String name) throws ClassNotFoundException {
SolrResourceLoader loader = new SolrResourceLoader( null );
return loader.findClass(name);
// return Class.forName(name);
}

Brendan





--
--Noble Paul





--
--Noble Paul

  • Slight issue with clas... Brendan Grainger
    • Re: Slight issue ... Jon Baer
      • Re: Slight is... Noble Paul നോബിള്‍ नोब्ळ्
        • Re: Sligh... Brendan Grainger
          • Re: S... Noble Paul നോബിള്‍ नोब्ळ्
            • ... Brendan Grainger
            • ... Chris Hostetter
              • ... Noble Paul നോബിള്‍ नोब्ळ्
                • ... Brian Carmalt
                • ... Erik Hatcher
                • ... William Silva
                • ... Noble Paul നോബിള്‍ नोब्ळ्
                • ... Chris Hostetter
                • ... William Silva
                • ... Noble Paul നോബിള്‍ नोब्ळ्
                • ... Brendan Grainger

Reply via email to