集成 solr7.5.0到tomcat7中,出现两错误403 – Forbidden和java.lang.NoSuchMethodError

环境说明

    solr-7.5.0

    apache-tomcat-7.0.91.zip

    jdk1.8.0_171

1.安装solr

    1.1  建立solrHome文件夹,路径可以随意,例:E:\Java\lucene_shor\solr\solrhome

    1.2  把solr-7.5.0\server\solr下所有的文件copy到solrhome中,如下

2.把solr应用部署到tomcat

    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.配置apache-tomcat-8.5.34\webapps\solr\WEB-INF\web.xml文件

      3.1 在web.xml中, 配置指定solrhome的位置

      打开apache-tomcat-8.5.34\webapps\solr\WEB-INF\web.xml文件

添加以下节点:

        <env-entry>
               <env-entry-name>solr/home</env-entry-name>
               <env-entry-value>E:/Java/lucene_shor/solr/solrhome</env-entry-value>
               <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>

4.测试,启动tomcat

浏览器输入   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成功截图

猜你喜欢

转载自blog.csdn.net/qq_40580023/article/details/83866303
今日推荐