我的版本:
CentOS 6.5 x86_64 kvm
Java 1.7.0_65
Solr 4.9.0
Tomcat6.0.24
我还在学习如何为Drupal安装安装Solr。一直在关注这个设置的几个教程。 Java和Tomcat现在正在工作。我在我的iptables上打开了8080端口,所以:8080加载了Tomcat页面。
我目前的设置是:
当我下载Solr并将其解压缩到位于此处的名为solr的新文件夹中时,我抓住/example/solr
文件夹中的内容:
/var/lib/tomcat6/webapps/solr/WEB-INF
我在这里安装,因为教程让我跳过将solr.xml文件放在这里以指向另一个位置的步骤,例如/ opt / solr /或whatnot:
所以为了进一步澄清,我的文件结构在这里。
/solr/
|--/bin/
|--/collection1/
|--/drupalsolr/ (this is my core/instace)
|--/conf/
|--solr.xml
|--zoo.cfg
/solr.war
/weblogic.xml (was in here originally)
当我访问:8080然后单击Tomcat Manager时,我看到/ solr正在'运行'。然而,当我点击/ solr在这里。它给我一个404错误。
HTTP Status 404 - /solr/
type Status report
message /solr/
description The requested resource (/solr/) is not available.
Apache Tomcat/6.0.24
我从哪里开始修复此问题?除了404找不到错误之外,我还能找到任何类型的错误吗?
好的,我正在关注本教程,了解他们如何使用Context Path文件并将Solr安装在Tomcat文件夹之外。我将其移至/ opt / solr并编辑生成的上下文路径web.xml文件,该文件位于此处:/var/lib/tomcat6/webapps/solr/WEB-INF/web.xml
以下是我现在在web.xml文件中编辑的内容:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/opt/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
我现在收到错误'FAIL:无法启动上下文路径/ solr处的应用程序'。所以我想这意味着我的实际Solr核心没有正确设置。我google了,它可能是我的.jar文件。没有正确的错误很难说清楚。
我还确保我的$ JAVA_HOME设置为/urs/local/jdk
以下是日志中的错误:
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive solr.war
Aug 07, 2014 3:31:01 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Aug 07, 2014 3:31:01 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/solr] startup failed due to previous errors
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory sample
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Aug 07, 2014 3:31:01 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Aug 07, 2014 3:31:01 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Aug 07, 2014 3:31:01 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/15 config=null
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 885 ms
Aug 07, 2014 3:37:14 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Aug 07, 2014 3:37:15 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Aug 07, 2014 3:37:15 PM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
答案 0 :(得分:3)
默认的solr端口是8983或在solr配置中设置,然后如所述here URL结构
http://localhost:8983/solr/{{solrCoreName}}
如果这不起作用,可能值得检查solr服务是否实际运行(对于ubuntu / debian - &gt; service solr 8983状态或类似的发行版或检查进程列表)。
答案 1 :(得分:1)
HTTP状态404表示请求的资源不存在。
我们可以在Tomcat 7 Per-Request Functionality中读到:
在此servlet处理的每个HTTP GET请求中,如下所示 处理应该进行:
- 如果请求是针对
/META-INF
或/WEB-INF
下的资源,请返回HTTP状态404(未找到)。- 如果请求的资源不存在,请返回 HTTP状态404 (未找到)。
- 如果请求的资源不是目录,但资源路径以
/
或\
结尾,则返回 HTTP状态404 (不是实测值)。- 如果请求的资源是目录:如果目录列表被禁止,则返回 HTTP状态404 (未找到)。
对于在Web应用程序中不存在(文件夹)的资源请求必须返回HTTP状态404(未找到)。
如果您在上方检查并且您的应用程序存在且错误仍然存在,请检查以下内容:
在solr.war
文件夹中部署了WAR文件(例如webapps/
),该文件应由以下日志条目指示:
信息:部署Web应用程序存档solr.war
检查日志,例如:
cd /var/log/tomcat? && tail -f *.log *.txt *.out
然后再次点击页面。 检查应用是否在 Tomcat Web应用程序管理器中启动并运行(位于/manager/html
)。重新加载以防万一。
如果Tomcat有权访问其文件,请检查文件权限,例如:
sudo chown -R tomcat7 /var/lib/tomcat7/
.properties
中的solr/WEB-INF
个文件(以防万一)。links
)。web.xml
文件夹中是否有WEB-INF/
,如果没有,请按照下一点进行操作。solr/
的{{1}}),以便在重新启动Tomcat时重新创建它们(如果您修改了任何内容,则进行备份)。或者只是从头开始重新部署WAR文件。故障排除/调试:
solr.war
)的级别提高到logging.properties
并再次重新检查日志。使用FINEST
调试Tomcat(在您点击页面时),例如:
strace
其中sudo strace -fe file -p 1234
是Tomcat进程的PID(通过1234
检查)。您也可以使用ps wuax | grep tomcat
,file
等来代替network
。