You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by bryan rasmussen <ra...@gmail.com> on 2011/06/07 13:48:05 UTC
solr 3.1 java.lang.NoClassDEfFoundError org/carrot2/core/ControllerFactory
As per the subject I am getting java.lang.NoClassDEfFoundError
org/carrot2/core/ControllerFactory
when I try to run clustering.
I am using Solr 3.1:
I get the following error:
java.lang.NoClassDefFoundError: org/carrot2/core/ControllerFactory
at org.apache.solr.handler.clustering.carrot2.CarrotClusteringEngine.<init>(CarrotClusteringEngine.java:74)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:412)
at org.apache.solr.handler.clustering.ClusteringComponent.inform(ClusteringComponent.java:203)
at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:522)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:458)
at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mortbay.start.Main.invokeMain(Main.java:194)
at org.mortbay.start.Main.start(Main.java:534)
at org.mortbay.start.Main.start(Main.java:441)
at org.mortbay.start.Main.main(Main.java:119)
Caused by: java.lang.ClassNotFoundException: org.carrot2.core.ControllerFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.net.FactoryURLClassLoader.loadClass(Unknown Source)
using the following configuration
<searchComponent
class="org.apache.solr.handler.clustering.ClusteringComponent"
name="clustering">
<lst name="engine">
<str name="name">default</str>
<str name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
<!-- Engine-specific parameters -->
<str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
</lst>
</searchComponent>
<requestHandler name="/search"
class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
</lst>
<!--
By default, this will register the following components:
<arr name="components">
<str>query</str>
<str>facet</str>
<str>mlt</str>
<str>highlight</str>
<str>debug</str>
</arr>
</requestHandler>
<requestHandler name="clusty" class="solr.SearchHandler" default="true">
<lst name="defaults">
<str name="echoParams">explicit</str>
<bool name="clustering">true</bool>
<str name="clustering.engine">default</str>
<bool name="clustering.results">true</bool>
<!-- Fields to cluster on -->
<str name="carrot.title">title</str>
<str name="carrot.snippet">all_text</str>
<str name="hl.fl">all_text title</str>
<!-- for this field, we want no fragmenting, just highlighting -->
<str name="f.name.hl.fragsize">150</str>
</lst>
<arr name="last-components">
<str>clustering</str>
</arr>
</requestHandler>
with the following command to start solr
java -Dsolr.clustering.enabled=true
-Dsolr.solr.home="C:\projects\solrexample\solr" -jar start.jar
Any idea as to why crusty is not working?
Thanks,
Bryan Rasmussen
Re: solr 3.1 java.lang.NoClassDEfFoundError org/carrot2/core/ControllerFactory
Posted by Stanislaw Osinski <st...@osinski.name>.
Hi Bryan,
You'll also need to make sure the your
${solr.dir}/contrib/clustering/lib directory is in the classpath; that
directory contains the Carrot2 JARs that
provide the classes you're missing. I think the example solrconfig.xml
has the relevant <lib> declarations.
Cheers,
S.
On Tue, Jun 7, 2011 at 13:48, bryan rasmussen <ra...@gmail.com>wrote:
> As per the subject I am getting java.lang.NoClassDEfFoundError
> org/carrot2/core/ControllerFactory
> when I try to run clustering.
>
> I am using Solr 3.1:
>
> I get the following error:
>
> java.lang.NoClassDefFoundError: org/carrot2/core/ControllerFactory
> at
> org.apache.solr.handler.clustering.carrot2.CarrotClusteringEngine.<init>(CarrotClusteringEngine.java:74)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
> Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
> at java.lang.reflect.Constructor.newInstance(Unknown Source)
> at java.lang.Class.newInstance0(Unknown Source)
> at java.lang.Class.newInstance(Unknown Source)
> at
> org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:412)
> at
> org.apache.solr.handler.clustering.ClusteringComponent.inform(ClusteringComponent.java:203)
> at
> org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:522)
> at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594)
> at org.apache.solr.core.CoreContainer.create(CoreContainer.java:458)
> at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
> at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
> at
> org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
> at
> org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
> at
> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> at org.mortbay.jetty.Server.doStart(Server.java:224)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.mortbay.start.Main.invokeMain(Main.java:194)
> at org.mortbay.start.Main.start(Main.java:534)
> at org.mortbay.start.Main.start(Main.java:441)
> at org.mortbay.start.Main.main(Main.java:119)
> Caused by: java.lang.ClassNotFoundException:
> org.carrot2.core.ControllerFactory
> at java.net.URLClassLoader$1.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at java.net.FactoryURLClassLoader.loadClass(Unknown Source)
>
> using the following configuration
>
>
> <searchComponent
> class="org.apache.solr.handler.clustering.ClusteringComponent"
> name="clustering">
> <lst name="engine">
> <str name="name">default</str>
> <str
> name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
>
> <!-- Engine-specific parameters -->
> <str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
> </lst>
> </searchComponent>
> <requestHandler name="/search"
> class="org.apache.solr.handler.component.SearchHandler">
> <lst name="defaults">
> <str name="echoParams">explicit</str>
> </lst>
> <!--
> By default, this will register the following components:
>
> <arr name="components">
> <str>query</str>
> <str>facet</str>
> <str>mlt</str>
> <str>highlight</str>
> <str>debug</str>
> </arr>
> </requestHandler>
>
> <requestHandler name="clusty" class="solr.SearchHandler" default="true">
> <lst name="defaults">
> <str name="echoParams">explicit</str>
>
> <bool name="clustering">true</bool>
> <str name="clustering.engine">default</str>
> <bool name="clustering.results">true</bool>
>
> <!-- Fields to cluster on -->
> <str name="carrot.title">title</str>
> <str name="carrot.snippet">all_text</str>
> <str name="hl.fl">all_text title</str>
> <!-- for this field, we want no fragmenting, just highlighting -->
> <str name="f.name.hl.fragsize">150</str>
> </lst>
> <arr name="last-components">
> <str>clustering</str>
> </arr>
> </requestHandler>
>
>
>
> with the following command to start solr
> java -Dsolr.clustering.enabled=true
> -Dsolr.solr.home="C:\projects\solrexample\solr" -jar start.jar
>
> Any idea as to why crusty is not working?
>
> Thanks,
> Bryan Rasmussen
>
Re: solr 3.1 java.lang.NoClassDEfFoundError org/carrot2/core/ControllerFactory
Posted by Stanislaw Osinski <st...@carrotsearch.com>.
Hi Bryan,
You'll also need to make sure the your ${solr.home}/contrib/clustering/lib
directory is in the classpath; that directory contains the Carrot2 JARs that
provide the classes you're missing. I think the example solrconfig.xml has
the relevant <lib> declarations.
Cheers,
S.
On Tue, Jun 7, 2011 at 13:48, bryan rasmussen <ra...@gmail.com>wrote:
> As per the subject I am getting java.lang.NoClassDEfFoundError
> org/carrot2/core/ControllerFactory
> when I try to run clustering.
>
> I am using Solr 3.1:
>
> I get the following error:
>
> java.lang.NoClassDefFoundError: org/carrot2/core/ControllerFactory
> at
> org.apache.solr.handler.clustering.carrot2.CarrotClusteringEngine.<init>(CarrotClusteringEngine.java:74)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
> Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
> at java.lang.reflect.Constructor.newInstance(Unknown Source)
> at java.lang.Class.newInstance0(Unknown Source)
> at java.lang.Class.newInstance(Unknown Source)
> at
> org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:412)
> at
> org.apache.solr.handler.clustering.ClusteringComponent.inform(ClusteringComponent.java:203)
> at
> org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:522)
> at org.apache.solr.core.SolrCore.<init>(SolrCore.java:594)
> at org.apache.solr.core.CoreContainer.create(CoreContainer.java:458)
> at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
> at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
> at
> org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
> at
> org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
> at
> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> at org.mortbay.jetty.Server.doStart(Server.java:224)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.mortbay.start.Main.invokeMain(Main.java:194)
> at org.mortbay.start.Main.start(Main.java:534)
> at org.mortbay.start.Main.start(Main.java:441)
> at org.mortbay.start.Main.main(Main.java:119)
> Caused by: java.lang.ClassNotFoundException:
> org.carrot2.core.ControllerFactory
> at java.net.URLClassLoader$1.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(Unknown Source)
> at java.lang.ClassLoader.loadClass(Unknown Source)
> at java.net.FactoryURLClassLoader.loadClass(Unknown Source)
>
> using the following configuration
>
>
> <searchComponent
> class="org.apache.solr.handler.clustering.ClusteringComponent"
> name="clustering">
> <lst name="engine">
> <str name="name">default</str>
> <str
> name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
>
> <!-- Engine-specific parameters -->
> <str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
> </lst>
> </searchComponent>
> <requestHandler name="/search"
> class="org.apache.solr.handler.component.SearchHandler">
> <lst name="defaults">
> <str name="echoParams">explicit</str>
> </lst>
> <!--
> By default, this will register the following components:
>
> <arr name="components">
> <str>query</str>
> <str>facet</str>
> <str>mlt</str>
> <str>highlight</str>
> <str>debug</str>
> </arr>
> </requestHandler>
>
> <requestHandler name="clusty" class="solr.SearchHandler" default="true">
> <lst name="defaults">
> <str name="echoParams">explicit</str>
>
> <bool name="clustering">true</bool>
> <str name="clustering.engine">default</str>
> <bool name="clustering.results">true</bool>
>
> <!-- Fields to cluster on -->
> <str name="carrot.title">title</str>
> <str name="carrot.snippet">all_text</str>
> <str name="hl.fl">all_text title</str>
> <!-- for this field, we want no fragmenting, just highlighting -->
> <str name="f.name.hl.fragsize">150</str>
> </lst>
> <arr name="last-components">
> <str>clustering</str>
> </arr>
> </requestHandler>
>
>
>
> with the following command to start solr
> java -Dsolr.clustering.enabled=true
> -Dsolr.solr.home="C:\projects\solrexample\solr" -jar start.jar
>
> Any idea as to why crusty is not working?
>
> Thanks,
> Bryan Rasmussen
>