Solr8在tomcat上的部署

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hp_1234/article/details/88888608

Apache Solr™8.0.0已于2019年3月14日发布。

Solr8最低支持的Java版本是Java8,但由于官方在升级日志中声明:

ALPN is not supported in Java 8 or lower version therefore when a node started in Java 8 or a lower version with SSL enabled, it will send and can only be able to handle HTTP/1.1 requests. In case of using SSL Java 9 or latter versions are recommended.

所以建议使用9以上的Java版本 。

本篇使用linux环境举例,windows下的部署基本相同。

(我用了图形化linux,因为懒)

1、首先准备Solr所需的JDK和Tomcat

2、在Apache的Solr官网上下载对应版本Solr,并解压

​ https://lucene.apache.org/solr/ ​

3、拷贝web工程:将solr-8.0.0/server/solr-webapp/下的webapp文件夹拷贝到Tomcat的webapps目录下并改成你要用的名字 (在4和更早的版本中会以war包形式存在,需解压war包):

webapp

4、拷贝日志工具相关jar包:将solr-8.0.0/server/lib/ext下的jar包拷贝至上面Tomcat下Solr的/WEB-INF/lib/目录下

5、拷贝metrics相关jar包:将solr-8.0.0/server/lib下metrics相关jar包也拷贝至/WEB-INF/lib/目录下

缺少相关文件会导致项目启动失败并报filterStart Exception(启动过滤器异常)

linux下:

严重 [*] org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常
 java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet

windows下:

  严重 [*] org.apache.catalina.core.StandardContext.filterStart Exception starting filter SolrRequestFilter
 java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet

6、拷贝log4j2配置文件:将solr-8.0.0/server/resource目录中的log4j配置文件拷入web工程目录WEB-INF/classes(自行创建目录) 

需要注意的是从Solr7开始内置log4j升级至log4j2,而log4j2不再支持properties配置文件而需要使用json或xml来配置。

因为不使用日志文件,直接注释掉log4j2.xml的<RollingFile>标签。

7、创建solrhome:拷贝solr-8.0.0/server/solr目录到你想要的位置,Solrhome是存放solr服务器所有配置文件的目录。

8、指定solrhome位置:修改solrweb工程的web.xml文件,在web-app节点下添加

  <env-entry>
    <env-entry-name>solr/home</env-entry-name>
    <env-entry-value>“你的solrhome位置”</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>

 注:该配置在6以及之前的版本是已经存在但被注释掉的,从7及之后的版本已被删除但目前(8.0.0)仍能使用

之后注释掉<security-constraint>整个标签,这个标签负责安全认证,这里暂不介绍。

启动Tomcat即可访问。(ip):(port)/(工程名)/index.html

 

展开阅读全文

没有更多推荐了,返回首页