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

时间:2014-11-21 10:19:08

标签: java tomcat solr ubuntu-14.04

Ubuntu 14.04

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

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

我正在尝试使用extract函数,这是一个插件。

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

  

org.apache.solr.common.SolrException:延迟加载错误       at org.apache.solr.core.RequestHandlers $ LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:260)       at org.apache.solr.core.RequestHandlers $ LazyRequestHandlerWrapper.handleRequest(RequestHandlers.java:242)       在org.apache.solr.core.SolrCore.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.StandardWrapperValve.invoke(StandardWrapperValve.java:233)       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)       在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)       在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)       在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)       在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)       在org.apache.coyote.http11.Http11Processor.process(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(Thread.java:745)   引起:org.apache.solr.common.SolrException:加载类' solr.extraction.ExtractingRequestHandler'时出错       在org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:414)       在org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419)       在org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:455)       at org.apache.solr.core.RequestHandlers $ LazyRequestHandlerWrapper.getWrappedHandler(RequestHandlers.java:251)       ......还有16个   引起:java.lang.ClassNotFoundException:solr.extraction.ExtractingRequestHandler       在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)       在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)       at java.security.AccessController.doPrivileged(Native Method)       在java.net.URLClassLoader.findClass(URLClassLoader.java:354)       at java.lang.ClassLoader.loadClass(ClassLoader.java:425)       at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789)       at java.lang.ClassLoader.loadClass(ClassLoader.java:358)       at java.lang.Class.forName0(Native Method)       在java.lang.Class.forName(Class.java:274)       在org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:398)       ......还有19个

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

我不是一个Java人。我寻找了一条类似于错误指示的路径,找到了" / usr / share / maven-repo / org / apache / solr / solr-core",这与" org并不严格对应.apache.solr.core&#34 ;.所以,我在这里犹豫不决。

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 /共享/ Maven的回购/组织/阿帕奇/ Solr的/ 的/ etc / solr的

希望其中任何一个是家庭&#39; solr目录,没有运气。

我添加了

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

到我的solrconfig.xml并在tomcat日志中观察到:

  

信息:添加&#39;文件:/var/lib/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction/ExtractingRequestHandler.java'到类加载器

仍然没有运气。

提前致谢。

编辑:

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

  

2014年11月23日上午12:53:44 org.apache.solr.core.RequestHandlers   initHandlersFromConfig INFO:添加延迟的requestHandler:   solr.extraction.ExtractingRequestHandler

它很奇怪,因为它表明一个&#34;懒惰的requestHandler&#34;是在solr.extraction.ExtractingRequestHandler中创建的,它与错误相矛盾:

  

加载课程时遇到错误&#39; solr.extraction.ExtractingRequestHandler&#39;

如果我删除&#34; startup =&#39; lazy&#39;&#34;来自上面配置的属性,当我重新启动Tomcat时,出现错误:

  

SEVERE:org.apache.solr.common.SolrException:加载类时出错   &#39; solr.extraction.ExtractingRequestHandler&#39;

1 个答案:

答案 0 :(得分:2)

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

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

从该目录中的README.txt:

  

入门

     

您需要Solr启动并运行。然后,只需添加提取JAR文件,再加上Tika依赖项(在./lib文件夹中)   到您的Solr Home lib目录。有关挂钩的详细信息,请参阅http://wiki.apache.org/solr/ExtractingRequestHandler    和配置。

虽然您似乎正在关注如何执行此操作的较旧版本(来自您的请求处理程序名称)。 current configuration is detailed in the community 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