【发布时间】:2023-03-15 20:32:01
【问题描述】:
Ubuntu 14.04
我使用 sudo apt-get install solr-tomcat 安装。
似乎“核心”功能已安装并且正在运行,但没有任何插件(或者我只是不知道在哪里寻找)。
我正在尝试使用 extract 函数,它是一个插件。
当我尝试时,我得到了这个
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.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) 在 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) 在 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) 在 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 的文件。
我不是 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
希望要么是“主”solr 目录,但运气不好。
我加了
<lib dir="/var/lib/solr/contrib/extraction/src/java/org/apache/solr/handler/extraction" />
到我的 solrconfig.xml 并在 tomcat 日志中观察到这一点:
信息:将“文件:/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 信息:添加惰性请求处理程序: solr.extraction.ExtractingRequestHandler
这很奇怪,因为它表明在 solr.extraction.ExtractingRequestHandler 中创建了一个“惰性 requestHandler”,这与错误相矛盾:
加载类“solr.extraction.ExtractingRequestHandler”时出错
如果我从上面的配置中删除“startup = 'lazy'”属性,当我重新启动Tomcat时,会出现错误:
严重:org.apache.solr.common.SolrException:加载类时出错 'solr.extraction.ExtractingRequestHandler'
【问题讨论】:
标签: java tomcat solr ubuntu-14.04