我在将 LocalSolr 组件安装到我的 Solr 设置。我在以下设置上运行 Solr:
- Microsoft Windows Server 2003 R2
- Apache Tomcat 6
Solr 正在运行很棒的枪..但是,当尝试安装 LocalSolr 时,我在尝试转到 Solr 管理页面时收到以下消息:
2009 年 12 月 8 日上午 10:25:32
org.apache.solr.common.SolrException
记录严重:
java.lang.NoClassDefFoundError:
org/apache/lucene/spatial/tier/DistanceFilter
在java.lang.Class.forName0(本机
方法)在
java.lang.Class.forName(Class.java:247)
在
org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:257)
在
org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:278)
在
org.apache.solr.util.plugin.AbstractPluginLoader.create(AbstractPluginLoader.java:83)
在
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:140)
在
org.apache.solr.core.SolrCore.loadSearchComponents(SolrCore.java:741)
在
org.apache.solr.core.SolrCore.(SolrCore.java:439)
在
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:119)
在
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:69)
在
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
在
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
在
org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108)
在
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3800)
在
org.apache.catalina.core.StandardContext.start(StandardContext.java:4450)
在
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
在
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
在
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
在
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)
在
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)
在
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
在
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
在
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
在
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
在
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
在
org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
在
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
在
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
在
org.apache.catalina.core.StandardService.start(StandardService.java:516)
在
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
在
org.apache.catalina.startup.Catalina.start(Catalina.java:583)
在
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
方法)在
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在
java.lang.reflect.Method.invoke(Method.java:597)
在
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
在
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
造成原因:
java.lang.ClassNotFoundException:
org.apache.lucene.spatial.tier.DistanceFilter
在
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
在
java.security.AccessController.doPrivileged(本机
方法)在
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
在
java.lang.ClassLoader.loadClass(ClassLoader.java:307)
在
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:592)
在
java.lang.ClassLoader.loadClass(ClassLoader.java:252)
在
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 37 更多
有没有人有在 Solr Box 上安装 LocalSolr 的经验,知道我可以做一些调整来使其工作?
编辑
博客:将LocalSolr安装到windows盒子上:http://craftyfella.blogspot.com/2009/12/installing-localsolr-onto-solr-14.html
希望有帮助:)
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 :)
发布评论
评论(2)
NoClassDefFoundError
基本上意味着所提到的类在运行时类路径中丢失,而它在相关 API 的编译时在类路径中可用(这就是与ClassNotFoundException
的区别) )。要解决这个问题,您显然需要将提到的类(或包含提到的类的 JAR 文件)放置在运行时类路径中。
正如包名称已经暗示的那样,这涉及 Apache Lucene,可以在 http://lucene.apache.org 上找到它。你的运行时类路径中有它的库吗?如果是这样,您确定在类路径上传播的不同版本的重复类/jar 之间没有冲突(即在
WEB-INF/lib
、Appserver/lib
和JRE/lib
)哪个可能由不同的类加载器加载?那也会导致这种错误。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 withClassNotFoundException
).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
andJRE/lib
) which might be loaded by different classloaders? That can namely also cause this kind of errors.LocalSolr 仍然是非常前沿的东西,但是我成功地使用了这个“包含电池的演示”。
它作为 Solr JIRA 的 SOLR-733 问题上的链接发布,跟踪将 LocalSolr 合并到 Solr 中:http://issues.apache.org/jira/browse/SOLR-773?focusedCommentId=12781094&page= com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12781094
希望这对您有用,它对我来说是开箱即用的,使用 http://www.gissearch.com/localsolr。
LocalSolr is still pretty bleeding edge stuff, however I am successfully using this "Batteries included Demo".
It was posted as a link on the SOLR-733 issue for Solr JIRA that tracks incorporating LocalSolr into Solr: http://issues.apache.org/jira/browse/SOLR-773?focusedCommentId=12781094&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12781094
Hopefully that works for you, it did for me right out of the box, using the directions at http://www.gissearch.com/localsolr.