尝试使用 Tomcat 启动新应用程序时出现此错误:
Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. For more information, see: http://wiki.apache.org/solr/SolrLogging
我没有使用 Jetty,而是使用 Tomcat,所以我的安装说明略有不同。
我检查了链接并广泛阅读了这方面内容 - 似乎库需要进入 $CATALINA_BASE/lib - 在我的情况下应该是:
/usr/local/easy/share/easy-tomcat7/lib
然而,我把图书馆放在那里——没有骰子。
这是 lib 目录:
./ commons-io-2.3.jar jsp-api.jar slf4j-api-1.7.6.jar tomcat-juli-adapters.jar
../ el-api.jar jul-to-slf4j-1.7.7.jar slf4j-api-1.7.7.jar tomcat-juli.jar
annotations-api.jar httpclient-4.3.1.jar log4j.jar@ slf4j-log4j12-1.7.7.jar tomcat-util.jar
catalina-ant.jar httpcore-4.3.jar log4j-over-slf4j-1.7.7.jar tomcat-api.jar wstx-asl-3.2.7.jar
catalina-ha.jar httpmime-4.3.1.jar log4j.properties tomcat-coyote.jar zookeeper-3.4.6.jar
catalina.jar jasper-el.jar log4j.properties.bak tomcat-i18n-es.jar
catalina-tribes.jar jasper.jar noggit-0.5.jar tomcat-i18n-fr.jar
commons-collections.jar@ jasper-jdt.jar@ servlet-api.jar tomcat-i18n-ja.jar
commons-dbcp.jar@ jcl-over-slf4j-1.7.7.jar slf4j-1.7.7/ tomcat-jdbc.jar
正如您所见,所有的库都应该在那里。
那么这是什么原因造成的?我是不是在错误的 Tomcat 目录中?我是不是没有获取正确的文件?我是不是缺少了某些配置设置?我几乎完全迷失了方向。
答案1
在您的类路径中有两个版本的 slf4j api 库并不是一个好主意。您有 slf4j-api-1.7.6.jar 和 slf4j-api-1.7.7.jar。
此外,您的类路径中应该有相应的 slf4j 实现库。
请参阅slf4j 文档获取有关如何在应用程序中包含 slf4j 的更多详细信息。
答案2
为了使您的 Solr 与 Tomcat 正常工作,您需要:
将 SLF4j 日志 jar 文件复制
<solr>/example/lib/ext/*.jar
到 Tomcat Lib(例如TOMCAT_HOME/lib
)/usr/share/tomcat/lib
或 Webapp Lib 目录(例如TOMCAT_HOME/webapps/solr/WEB-INF/lib
)。这些 jar 文件将设置 SLF4J 和 log4j。对于使用操作系统供应商提供的 Tomcat 包的 Debian 或 Ubuntu 服务器,这可能是
/usr/share/tomcat6/lib
或/usr/share/tomcat7/lib
。例如:
# cp -v /opt/solr-4.10.4/example/lib/ext/*.jar /usr/share/tomcat?/lib/
或者:
# cp -v /opt/solr-4.10.4/example/lib/ext/*.jar /var/lib/tomcat7/webapps/solr/WEB-INF/lib/
或者设置你的
CLASSPATH
以指向你的 jar 文件。将日志配置复制
solr/example/resources/log4j.properties
到类路径上的某个位置。通常,您可以使用与上述 jar 文件相同的位置,并编辑您首选日志目标的配置文件。或者,如果您没有放置
log4j.properties
在类路径上,请设置 java 选项:-Dlog4j.configuration=file:///path/to/log4j.properties
重新启动 Tomcat(例如
sudo /etc/init.d/tomcat7 restart
)。
如果仍然有问题,启动服务器可能会有助于-Dlog4j.debug=true
查看更多详细信息。