Solr(一):Solr6.4.1 安装部署到 Tomcat 8 (环境篇:Window10)
2017-02-22 12:32
691 查看
这两天在看Solr,尝试使用了最新版Solr6.4.1。正常情况下,不需要做什么,只要解压后,在bin目录运行solr start就可以跑起来。但是,查了网上很多都是用Solr+Tomcat的方式。自己也就想尝试一下看看什么不同,毕竟Tomcat用的也比较多。看了很多仁兄的帖子,方式基本一致和完整。不知道是版本问题,还是其它原因,总有一两个关键点没有描述,所以即使用最新版本搭建环境,也会出问题。所以把所有问题及过程梳理一下,希望其他人少走几步弯路。
apache-tomcat-8.0.35-x64(解压版)
jdk-8u112-windows-x64 (网上都说必须用jdk1.8,否则会出错。因为电脑里一直用的就是JDK1.8,所以偷了个懒,也没有进行验证)
solr-6.4.1
后面用“apache-tomcat-8.0.35”,来指代我本地tomcat的放置目录。
后面用“solr-6.4.1”,来指代我本地solr的放置目录。
针对这个命名有两种说法:一种说可以随便改,一种说最好写成solr,因为跟solr/home配置查询有关。现阶段我还没有验证,为了减少自己不懂的问题出现,暂且用第二种方式。
将【solr-6.4.1\server\lib\ext】下的所有jar包拷贝到【Apache-tomcat-8.0.35\webapps\solr\WEB-INF\lib】
看过很多帖子都只说到这里,只是拷贝【solr-6.4.1\server\lib\ext】下的jar包,实际上solr无法正常启动,访问http://localhost:8080/solr/index.html,会出现404错误,如下图:
![](http://img.blog.csdn.net/20170222122823036?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUG9pbnRlcl92/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在【Apache-tomcat-8.0.35\logs】目录下,查看日志会发现错误:
实际上是找不到metrics相关的包,所以还要将【solr-6.4.1\server\lib】下的所有metrics-.jar包拷贝到【Apache-tomcat-8.0.35\webapps\solr\WEB-INF\lib】*
3.将【solr-6.4.1\server\resources】下的log4j.properties配置文件拷贝到【apache-tomcat-8.0.35\webapps\solr\WEB-INF\classes】,如果WEB-INF下没有classes文件那么就创建一个classes文件夹
4.将【solr-6.4.1\server\solr】文件夹拷贝到任意非中文目录或者位置下,将其名字修改为“solrhome”。“solrhome”包含的内容如下:
![](http://img.blog.csdn.net/20170222122954976?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUG9pbnRlcl92/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
5.修改【apache-tomcat-8.0.35\webapps\solr\WEB-INF】下的web.xml,找到如下代码:
默认是注解掉,放开注解,并将中的值修改为刚刚步骤7中的solrhome目录,如:E:/solrHome
6.一般到这一步,基本上说就可以运行solr,但实际上还会出现,如下图所示的403错误:
![](http://img.blog.csdn.net/20170222123039727?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUG9pbnRlcl92/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
。这个主要是由于在【Apache-tomcat-8.0.35\webapps\solr\WEB-INF\web.xml】文件中,有一段代码
将其注释掉即可。
7. 启动tomcat,在控制台出现下图所示内容,说明Solr启动成功。
![](http://img.blog.csdn.net/20170222123109837?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUG9pbnRlcl92/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
8.访问http://localhost:8080/solr/index.html,出现下图:
参考资料:
[1]:http://www.cnblogs.com/zhi-leaf/p/5935928.html
[2]:http://blog.csdn.net/qq_14806125/article/details/53014019
[3]:http://m.blog.csdn.net/article/details?id=53199355
一、环境说明
Windows 10-x64apache-tomcat-8.0.35-x64(解压版)
jdk-8u112-windows-x64 (网上都说必须用jdk1.8,否则会出错。因为电脑里一直用的就是JDK1.8,所以偷了个懒,也没有进行验证)
solr-6.4.1
二、部署步骤
(1)JDK和Tomcat安装
这里自我一把,搞Java开发应该都知道,就不在这里说了。后面用“apache-tomcat-8.0.35”,来指代我本地tomcat的放置目录。
(2)解压solr
将下载好的Solr,下载到指定目录。后面用“solr-6.4.1”,来指代我本地solr的放置目录。
(3)进行拷贝
将【solr-6.4.1\server\solr-webapp】下的“webapp”文件夹,整个拷贝到【Apache-tomcat-8.0.35\webapps】目录下,并将webapp重命名为solr针对这个命名有两种说法:一种说可以随便改,一种说最好写成solr,因为跟solr/home配置查询有关。现阶段我还没有验证,为了减少自己不懂的问题出现,暂且用第二种方式。
将【solr-6.4.1\server\lib\ext】下的所有jar包拷贝到【Apache-tomcat-8.0.35\webapps\solr\WEB-INF\lib】
看过很多帖子都只说到这里,只是拷贝【solr-6.4.1\server\lib\ext】下的jar包,实际上solr无法正常启动,访问http://localhost:8080/solr/index.html,会出现404错误,如下图:
在【Apache-tomcat-8.0.35\logs】目录下,查看日志会发现错误:
22-Feb-2017 10:05:36.365 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.filterStart Exception starting filter SolrRequestFilter java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) at java.lang.Class.getConstructor0(Class.java:3075) at java.lang.Class.newInstance(Class.java:412) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4660) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5298) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.MetricSet at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139) ... 20 more
实际上是找不到metrics相关的包,所以还要将【solr-6.4.1\server\lib】下的所有metrics-.jar包拷贝到【Apache-tomcat-8.0.35\webapps\solr\WEB-INF\lib】*
3.将【solr-6.4.1\server\resources】下的log4j.properties配置文件拷贝到【apache-tomcat-8.0.35\webapps\solr\WEB-INF\classes】,如果WEB-INF下没有classes文件那么就创建一个classes文件夹
4.将【solr-6.4.1\server\solr】文件夹拷贝到任意非中文目录或者位置下,将其名字修改为“solrhome”。“solrhome”包含的内容如下:
5.修改【apache-tomcat-8.0.35\webapps\solr\WEB-INF】下的web.xml,找到如下代码:
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/put/your/solr/home/here</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
默认是注解掉,放开注解,并将中的值修改为刚刚步骤7中的solrhome目录,如:E:/solrHome
6.一般到这一步,基本上说就可以运行solr,但实际上还会出现,如下图所示的403错误:
。这个主要是由于在【Apache-tomcat-8.0.35\webapps\solr\WEB-INF\web.xml】文件中,有一段代码
<!-- Get rid of error message --> <security-constraint> <web-resource-collection> <web-resource-name>Disable TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint/> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>Enable everything but TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method-omission>TRACE</http-method-omission> </web-resource-collection> </security-constraint>
将其注释掉即可。
7. 启动tomcat,在控制台出现下图所示内容,说明Solr启动成功。
8.访问http://localhost:8080/solr/index.html,出现下图:
[1]:http://www.cnblogs.com/zhi-leaf/p/5935928.html
[2]:http://blog.csdn.net/qq_14806125/article/details/53014019
[3]:http://m.blog.csdn.net/article/details?id=53199355
相关文章推荐
- window10 下安装java开发环境步骤(jdk,maven,idea,MySQL,navicat,tomcat)
- 【solr】solr6.4.1安装部署至tomcat教程
- window环境下将solr6.3部署到tomcat中
- solr6.4.1安装部署至tomcat教程
- solr6.4.1安装部署至tomcat教程
- (一)solr6.4.1+tomcat8.5.0+jdk1.8.0_112安装Solr环境
- window环境下将solr6.3部署到tomcat中
- window环境下将solr6.3部署到tomcat中
- window环境solr在tomcat中的安装 Solr with Apache Tomcat
- (五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql安装
- windows环境下solr部署到tomcat,全文检索
- 在Windows的Tomcat环境下部署Solr 4.6.1
- solr5.0 tomcat安装部署
- 在Window下SolrColud 5.0二次开发环境部署。
- 在Windows的Tomcat环境下部署Solr 4.7.0
- Window环境下基于Tomcat & Zookeeper搭建Solr Cloud 5.1
- linux/window 下 solr5.1 tomcat7.x 环境搭建即简单功能测试
- 在Windows的Tomcat环境下部署Solr 4.7.0
- (一)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - FTP安装
- 在Windows的Tomcat环境下部署Solr 4.7.0