我正在尝试将apache solr4.5与tomcat7.0集成。
这是我的概率,我在$ CATALINA_BASE / webapps下创建一个名为“solr”的目录,并在路径下创建一个context.xml,目录结构如下所示。
$ CATALINA_BASE / web应用/ solr的/ META-INF / context.xml中
context.xml如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<Context docBase="/solr/home/root/solr.war">
<Environment name="solr/home" type="java.lang.String" value="/solr/home/root" />
</Context>
我期待当我访问“localhost:8080 / solr /”时,solr webapp应该可以正常工作,但我得到的是这样的一些错误:
HTTP Status 404 - /solr/
type Status report
message /solr/
description The requested resource (/solr/) is not available.
Apache Tomcat/7.0.26
但是根据apache tomcat7.0文件,
可以明确定义单个上下文元素:
在应用程序文件中的/META-INF/context.xml中的单个文件中。 (可选)(基于主机的copyXML 属性)这可能会被复制到 $ CATALINA_BASE / conf / [enginename] / [hostname] /并重命名为 应用程序的基本文件名加上“.xml”扩展名。
在$ CATALINA_BASE / conf / [enginename] / [hostname] /目录中的单个文件(扩展名为“.xml”)中。上下文 路径和版本将从文件的基本名称派生( 文件名减去.xml扩展名)。此文件将始终采用 优先于Web中打包的任何context.xml文件 应用程序的META-INF目录。
- 醇>
主conf / server.xml中的Host元素。
所以,请任何人给我一些线索,谢谢。
答案 0 :(得分:0)
如果你检查位于/ logs中的catalina日志文件,你可能会看到Solr的一些错误,其中一个错误是:
SEVERE: Error filterStart
这是因为从版本4.3开始,Solr中现在实施日志记录的方式发生了变化。有关在Tomcat中设置日志记录的必要步骤,请参阅SolrLogging - Using the example logging setup in containers other than Jetty。
这可以解决您的问题。
答案 1 :(得分:0)
尝试将context.xml
(适用于所有网络应用)或solr.xml
(仅限solr)文件放在Catalina/localhost
文件夹中。
例如:
<Context docBase="webapps/solr.war" allowLinking="true" reloadable="true">
<Environment name="solr/home" type="java.lang.String" value="/opt/solr" override="true" />
</Context>
故障排除:
检查您的日志,例如:
cd /var/log/tomcat? && tail -f *.log *.out *.txt