为什么tomcat7无法读取我的context.xml?

时间:2013-10-09 01:01:12

标签: solr tomcat7

我正在尝试将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文件,

  

可以明确定义单个上下文元素:

     
      
  1. 在应用程序文件中的/META-INF/context.xml中的单个文件中。 (可选)(基于主机的copyXML   属性)这可能会被复制到   $ CATALINA_BASE / conf / [enginename] / [hostname] /并重命名为   应用程序的基本文件名加上“.xml”扩展名。

  2.   
  3. 在$ CATALINA_BASE / conf / [enginename] / [hostname] /目录中的单个文件(扩展名为“.xml”)中。上下文   路径和版本将从文件的基本名称派生(   文件名减去.xml扩展名)。此文件将始终采用   优先于Web中打包的任何context.xml文件   应用程序的META-INF目录。

  4.   
  5. 主conf / server.xml中的Host元素。

  6.   

所以,请任何人给我一些线索,谢谢。

2 个答案:

答案 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