【问题标题】:Solr 4 Data Import Handler doesn't workSolr 4 数据导入处理程序不起作用
【发布时间】:2013-06-27 00:29:47
【问题描述】:

我在 Tomcat 7 中部署 Solr 4.3.0。 一切正常,但 DataImportHandler。我可以去

http://localhost:8080/solr/#/collection1/dataimport//dataimport

屏幕并查看 UI 中加载的数据导入选项。

不过,我可以在“实体”组合框中看到我的任何实体加载。在配置框中,在右侧我可以看到下面的错误。

Apache Tomcat/7.0.41 - 错误 报告

525D76;}--> HTTP 状态 500 - 过滤器执行引发异常

noshade="noshade">

类型异常报告

消息 过滤器执行抛出异常

说明 服务器遇到一个内部错误,阻止它 满足这个要求。

异常

javax.servlet.ServletException:过滤器执行抛出了一个
异常

根本原因

java.lang.NoClassDefFoundError: org/apache/log4j/spi/LoggingEvent
  org.apache.solr.logging.log4j.EventAppender.append(EventAppender.java:35)
  org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
  org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
  org.apache.log4j.Category.callAppenders(Category.java:206)
  org.apache.log4j.Category.forcedLog(Category.java:391)
  org.apache.log4j.Category.log(Category.java:856)
  org.slf4j.impl.Log4jLoggerAdapter.error(Log4jLoggerAdapter.java:498)
  org.apache.solr.common.SolrException.log(SolrException.java:119)
  org.apache.solr.servlet.ResponseUtils.getErrorInfo(ResponseUtils.java:58)
  org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:691)
  org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:380)
  org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)

note 根本原因的完整堆栈跟踪是 在 Apache Tomcat/7.0.41 日志中可用。

Apache Tomcat/7.0.41

问题是我在类路径中加载了“log4j-1.2.16.jar”(它位于 Tomcat lib 目录中)。

有人遇到过这个问题吗?

【问题讨论】:

  • 你把所有的jar从ext文件夹复制到lib文件夹了吗?
  • 是的,我做到了。这是我的 Tomcat lib 文件夹的样子:annotations-api.jar catalina-ant.jar catalina-ha.jar catalina.jar catalina-tribes.jar ecj-4.2.2.jar el-api.jar jasper-el.jar jasper.jar jcl-over-slf4j-1.6.6.jar jsp-api.jar jul-to-slf4j-1.6.6.jar log4j-1.2.16.jar servlet-api.jar slf4j-api-1.6.6.jar slf4j-log4j12-1.6.6.jar tomcat-api.jar tomcat-coyote.jar tomcat-dbcp.jar tomcat-i18n-es.jar tomcat-i18n-fr.jar tomcat-i18n-ja.jar tomcat-jdbc.jar tomcat-util.jar
  • 我只是想确保在更改配置后您是否重新启动了 tomcat 和 solr 服务器?

标签: solr log4j dataimporthandler


【解决方案1】:

尝试按照Using the example logging setup in containers other than Jetty 中列出的步骤进行操作。在我按照这些步骤配置日志记录之前,我在运行 Solr 4.3 时遇到了同样的错误。

【讨论】:

  • 谢谢先生!这解决了我的问题。我忘记将 log4j.properties 文件放在我的类路径中。错误不直观。
  • 是的,我同意。我希望该错误对指出问题发生的位置更有帮助/意义。
【解决方案2】:

更改目录后,是否更改了solrconfig.xml文件中的目录路径。

我只是想确认修改配置文件后,是否重启了tomcat和solr服务器?

【讨论】:

    【解决方案3】:

    您需要将extSolr 中的slf4j-log4j12-1.6.6.jar 复制到lib 文件夹中。

    您还需要将 logging.properties 文件放在那里。

    【讨论】:

    • 您是否也将 logging.properties 文件放在那里?
    • 这一直是个问题。谢谢你,先生。
    • 我会在答案中添加它。对其他人也有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多