Solr Tomcat org.apache.Solr.common.SolrException:延迟加载错误



Ubuntu 14.04

我使用sudo apt-get-install solr-tomcat进行安装。

"核心"功能似乎已经安装并正在运行,但没有任何插件(或者我只是不知道该去哪里看)。

我正在尝试使用提取功能,这是一个插件。

当我尝试时,我会得到这个

org.apache.solr.common.SolrException:延迟加载错误网址:org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:260)网址:org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:242)网址:org.apache.solr.core.SolCore.execute(SolrCore.java:1376)网址:org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)网址:org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)网址:org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)网址:org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)网址:org.apache.catalina.core.StandardWrapperValv.invoke(StandardWrapperValve.java:233)网址:org.apache.catalina.core.StandardContextValv.invoke(StandardContextValv.java:191)网址:org.apache.catalina.core.StandardHostValv.invoke(StandardHostValv.java:127)网址:org.apache.catalina.vals.ErrorReportValve.ioke(ErrorReportValve.java:103)网址:org.apache.catalina.core.StandardEngineValv.invoke(StandardEngineValv.java:109)网址:org.apache.catalina.connecter.CoyoteAdapter.service(Coyotedapter.java:293)网址:org.apache.coyote.http11.Http11Processor.produce(Http11Processor.java:861)网址:org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)网址:org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)在java.lang.Thread.run(线程.java:745)导致原因:org.apache.solr.common.SolrException:加载类"solr.extraction.ExtractingRequestHandler"时出错网址:org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:414)网址:org.apache.solr.core.SolCore.createInstance(SolrCore.java:419)网址:org.apache.solr.core.SolCore.createRequestHandler(SolrCore.java:455)网址:org.apache.solr.core.RequestHandlers$LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:251)…还有16个引起原因:java.lang.ClassNotFoundException:solr.extraction.ExtractionRequestHandler位于java.net.URLClassLoader$1.run(URLClassLoader.java:366)位于java.net.URLClassLoader$1.run(URLClassLoader.java:355)位于java.security.AccessController.doPrivileged(本机方法)位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)位于java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789)位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)位于java.lang.Class.forName0(本机方法)位于java.lang.Class.forName(Class.java:274)网址:org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:398)…还有19个

我手动下载了最新版本,只是为了进行调查,并在其中找到了一个"提取"目录,以及一个名为ExtractingRequestHandler.java.的文件

我不是爪哇人。我寻找了一条与错误指示类似的路径,发现"/usr/share/maven-repo.org/apache/solr/solr-core",它与"org.apache.solr.core"并不严格对应。因此,我不太愿意在这里假设任何事情。

Solr正在搜索"提取"目录——我只是不确定在哪里。

我的solrconfig.xml文件有这个

<requestHandler name="/update/extract" 
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<!-- All the main content goes into "text"... if you need to return
the extracted text or do highlighting, use a stored field. -->
<str name="fmap.content">text</str>
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<!-- capture link hrefs but ignore div attributes -->
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
</lst>
</requestHandler>

我尝试将该提取目录复制到这两个目录中:/usr/share/maven repo/org/apache/solr//etc/solr

希望任何一个都是"home"solr目录,运气不好。

我添加了

<lib dir="/var/lib/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction" />

到我的solrconfig.xml,并在tomcat日志中观察到这一点:

信息:将"file:/var/lib/solr/contrib/extraction/src/java.org/apache/solr/handler/extraction/TextractingRequestHandler.java"添加到类加载器

不过,运气不好。

提前谢谢。

编辑:

我检查了我的tomcat日志,我看到了以下内容:

2014年11月23日上午12:53:44 org.apache.solr.core.RequestHandlersinitHandlersFromConfig信息:正在添加惰性请求处理程序:solr.extraction.ExtractionRequestHandler

这很奇怪,因为它表明在solr.extraction.ExtractingRequestHandler中创建了一个"惰性请求处理程序",这与错误相矛盾:

加载类"solr.extraction.ExtractingRequestHandler"时出错

如果我从上面的配置中删除"startup='lazy'"属性,当我重新启动Tomcat时,会出现一个错误:

SEVERE:org.apache.solr.common.SolrException:加载类时出错"solr.extraction.ExtractingRequestHandler">

您似乎正在将源目录添加到类路径中——您需要将编译后的版本及其依赖项添加到类道路中。

在正态分布中(从Solr主页),它位于contrib/extraction/lib中,它还捆绑了提取模块的其他依赖项。

从该目录中的README.txt:

入门

你需要Solr启动并运行。然后,只需添加提取JAR文件和Tika依赖项(在./lib文件夹中)到您的Solr Home lib目录。看见http://wiki.apache.org/solr/ExtractingRequestHandler有关将其挂入的更多详细信息以及配置。

尽管您似乎在遵循旧版本的操作方法(从您的请求处理程序名称)。社区wiki中详细介绍了当前的配置,发行版中也捆绑了一个完整的示例。

检索和提取文件:

$ wget http://<mirror>/lucene/solr/4.10.2/solr-4.10.2.tgz
$ tar xvzf solr-4.10.2.tgz
$ cd solr-4.10.2/contrib/extraction/lib/
$ ls
apache-mime4j-core-0.7.2.jar    pdfbox-1.8.4.jar
apache-mime4j-dom-0.7.2.jar     poi-3.10.1.jar
aspectjrt-1.6.11.jar            poi-ooxml-3.10.1.jar
bcmail-jdk15-1.45.jar           poi-ooxml-schemas-3.10.1.jar
bcprov-jdk15-1.45.jar           poi-scratchpad-3.10.1.jar
boilerpipe-1.1.0.jar            rome-0.9.jar
commons-compress-1.7.jar        tagsoup-1.2.1.jar
dom4j-1.6.1.jar                 tika-core-1.5.jar
fontbox-1.8.4.jar               tika-parsers-1.5.jar
icu4j-53.1.jar                  tika-xmp-1.5.jar
isoparser-1.0-RC-1.jar          vorbis-java-core-0.1.jar
jdom-1.0.jar                    vorbis-java-tika-0.1.jar
jempbox-1.8.4.jar               xercesImpl-2.9.1.jar
jhighlight-1.0.jar              xmlbeans-2.6.0.jar
juniversalchardet-1.0.3.jar     xmpcore-5.1.2.jar
metadata-extractor-2.6.2.jar    xz-1.4.jar

最新更新