Java – Solr – with LocalSolr for GIS Support Installation problems

gisjavalocalsolrsolr

I'm having trouble installing the LocalSolr component into my Solr setup. I'm running Solr on the following setup:

  • Microsoft Windows Server 2003 R2
  • Apache Tomcat 6

Solr is running great guns.. however when trying to install the LocalSolr i'm getting the following message when trying to go to the Solr Admin Page:

Dec 8, 2009 10:25:32 AM
org.apache.solr.common.SolrException
log SEVERE:
java.lang.NoClassDefFoundError:
org/apache/lucene/spatial/tier/DistanceFilter
at java.lang.Class.forName0(Native
Method) at
java.lang.Class.forName(Class.java:247)
at
org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:257)
at
org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:278)
at
org.apache.solr.util.plugin.AbstractPluginLoader.create(AbstractPluginLoader.java:83)
at
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:140)
at
org.apache.solr.core.SolrCore.loadSearchComponents(SolrCore.java:741)
at
org.apache.solr.core.SolrCore.(SolrCore.java:439)
at
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:119)
at
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:69)
at
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at
org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108)
at
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)
at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at
org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by:
java.lang.ClassNotFoundException:
org.apache.lucene.spatial.tier.DistanceFilter
at
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at
java.security.AccessController.doPrivileged(Native
Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at
java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:592)
at
java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
… 37 more

Does anyone have any experience getting LocalSolr installed on a Solr Box that knows some tweaks I can do to get this to work?

Edit

Blogged: installing LocalSolr onto windows box: http://craftyfella.blogspot.com/2009/12/installing-localsolr-onto-solr-14.html

Hope it helps 🙂

Best Answer

java.lang.NoClassDefFoundError: org/apache/lucene/spatial/tier/DistanceFilter

A NoClassDefFoundError basically means that the mentioned class is missing in the runtime classpath, while it was available in the classpath during compiletime of the API in question (that is the difference with ClassNotFoundException).

To solve this problem you obviously need to place the mentioned class (or the JAR file which includes the mentioned class) in the runtime classpath.

As the package name already hints, this concerns Apache Lucene which is available at http://lucene.apache.org. Do you have its libraries in the runtime classpath? If so, are you sure that there are no collisions between duplicated classes/jars of different versions spreading over the classpath (i.e. in WEB-INF/lib, Appserver/lib and JRE/lib) which might be loaded by different classloaders? That can namely also cause this kind of errors.

Related Topic