solr-7.5.0
apache-tomcat-7.0.91.zip
jdk1.8.0_171
1.1 建立solrHome文件夹,路径可以随意,例:E:\Java\lucene_shor\solr\solrhome
1.2 把solr-7.5.0\server\solr下所有的文件copy到solrhome中,如下
2.1 在Tomcat文件夹的webapps下,建立一个项目目录solr,如图
2.2 拷贝solr-7.5.0下面的server\solr-webapp\webapp里的所有文件到新建的apache-tomcat-8.5.34\webapps\solr目录下:
2.3 solr项目添加依赖包
2.3.1 将\solr-7.5.0\server\lib\ext下所有的jar包复制到tomcat的webapps下的solr项目的WEB-INF\lib目录中
2.3.2 将solr-7.5.0\server\lib下的metrics-相关的jar包,复制到webapps下的solr项目中WEB-INF\lib目录下
2.3.2 将solr-7.5.0\dist 下的dataimporthandler 包,复制到webapps下的solr项目中WEB-INF\lib目录下
2.4 配置日志文件
将solr-7.5.0\server\resources 下的log4j2.xml ,复制到webapps\solr\WEB-INF\classes下(WEB-INF下 没有classes则手动创建)
3.1 在web.xml中, 配置指定solrhome的位置
打开apache-tomcat-8.5.34\webapps\solr\WEB-INF\web.xml文件
添加以下节点:
|
浏览器输入 http://localhost/solr/index.html
4.1 若出现403 – Forbidden的错误,修改solr项目中的web.xml,将security-constraint节点代码注释掉
4.2 若出现错误:java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()Z
则将tomcat7换成tomcat8,或者将solr7换到solr5.4以下
错误原因:是由于servlet-api3.1以下版本没有javax.servlet.ServletInputStream.isFinished()方法,
下图是apache-tomcat-8.5.34里servlet-api里的ServletInputStream的isFinished方法截图,isFinihsed是servlet3.1后才有的方法
故solr7需使用tomcat8以上版本,否则就会报java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()Z错误
更换成tomcat8成功截图