集成 solr6.5.1到 tomcat7(8) 中 (解决java.lang.NoSuchMethodError问题)
♣下载solr安装包
♣安装solr
♣solr应用部署到tomcat下
♣配置web.xml
♣在tomcat7启动
♣改为在tomcat8启动
♣在自带的Jetty里启动
♣建立第一个Core
安装环境:
1.下载. SOLR下载地址:http://archive.apache.org/dist/lucene/solr/
官网:http://lucene.apache.org/solr/
2.安装solr
2.1 建立solrHome文件夹,路径随意,我的路径是E:/javaEdit/solrHome
2.2 在solrHome中新建文件夹solrCore:
2.3 从solr-6.5.1/server/solr下的把下面三个文件copy到solrHome中,如下图:
2.4将solr-6.5.1\server\solr\configsets\basic_configs下的conf文件夹copy到solrCore中,如下图
3.solr应用部署到tomcat下
3.1 在Tomcat文件夹webapps下,建立一个目录:
拷贝Solr下面的server\solr-webapp\webapp里的所有文件到新建的目录下:
3.2添加需要的扩展依赖包
3.2.1从\solr-6.5.1\server\lib\ext下将所有的jar包复制到tomcat的webapps下的solr项目的lib目录中
3.2.2复制\solr-6.5.1\solr-6.5.1\server\lib下的metrics-先关的jar包到webapps下的solr项目中
3.3添加log4j的配置文件
从\solr-6.5.1\server\resources下将log4j配置文件复制到tomcat的webapps下的classes文件夹中,classes文件夹没有则新建一个
4.配置web.xml
配置web.xml指定solrHome的位置
打开apache-tomcat-7.0.70\webapps\solr\WEB-INF\web.xml
增加如下节点:
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>E:/javaEdit/solrHome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
5.启动tomcat7
浏览器中输入: http://localhost/solr/index.html
若出现403的错误,修改solr项目中的web.xml,将169行左右的security-constraint代码注释掉
若出现错误:java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()Z
是tomcat7的lib下的servlet-api.jar下没有该方法。
由于solr5.5.0及其以上版本部署在tomcat7下的时候,会报
改为在tomcat8下测试,注意换tomcat的时候要在环境变量里的CATALINA_BASE和CATALINA_HOME
重启tomcat,浏览器中输入: http://localhost/solr/index.html ,可以看到solr界面,说明solr已经配置成功:
6.建立第一个Core
进入solr管理页面,点击左侧的core admin,然后点击add core,在name 和instanceDir下都输入solrCore,点击add core即可
进入到solrHome/solrCore目录,此时会发现多了一个data文件夹和一个properties文件,如图
solr界面, 在左侧即可看见刚刚建立的core