windows环境下运行solr example
第一步:windows环境下面配置JavaEE编译和运行环境 略过。第二步:下载Tomcat和Solr包 略过。
第三步:解压缩tomcat和solr到对应目录(根据个人喜好而定)
我的tomcat目录:D:\work_imp\tomcat\
solr目录: D:\work_imp\solr
第四步:将“\solr解压缩目录\dist\solr-4.2.0.war”复制到“\tomcat解压缩目录\webapps\”目录下,并修改名称为solr.war(便于配置,不修改也没问题)
在\\tomcat解压缩目录\下面新建一个文件夹并命名为"solrapp",将“\solr解压缩目录\example\solr\”复制到新创建的目录下
在“...\\Tomcat\\conf\\Catalina\\localhost”目录下建立“solr.xml” 配置文件,写入如下内容:
<?xml version="1.0" encoding="UTF-8" ?>
<Context docBase="D:/work_imp/tomcat/webapps/solr" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="D:/work_imp/tomcat/solrapp/solr" override="true" />
</Context>
docBase="XXX"和value="xxx"分别对应solr的war包目录和需要运行的solr目录,视个人情况做修改。
运行的过程中会报如下错误:
主要的错误:
solr - org.apache.solr.common.SolrException: Could not load config for solrconfig.xml
详细信息如下:
2013-4-5 17:36:15 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.19.
2013-4-5 17:36:15 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 , sendfile , accept filters , random .
2013-4-5 17:36:16 org.apache.coyote.http11.Http11AprProtocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2013-4-5 17:36:16 org.apache.coyote.ajp.AjpAprProtocol init
信息: Initializing Coyote AJP/1.3 on ajp-8009
2013-4-5 17:36:16 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 422 ms
2013-4-5 17:36:16 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2013-4-5 17:36:16 org.apache.catalina.core.StandardEngine start
2013-4-5 17:36:17 org.apache.solr.core.SolrResourceLoader <init>
信息: new SolrResourceLoader for directory: 'D:\work_imp\tomcat\solrapp\solr\collection1\'
2013-4-5 17:36:17 org.apache.solr.core.CoreContainer recordAndThrow
严重: Unable to create core: collection1
org.apache.solr.common.SolrException: Could not load config for solrconfig.xml
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:991)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1051)
at org.apache.solr.core.CoreContainer$3.call(CoreContainer.java:634)
at org.apache.solr.core.CoreContainer$3.call(CoreContainer.java:629)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: Can't find resource 'solrconfig.xml' in classpath or 'D:\work_imp\to
mcat\solrapp\solr\collection1\conf/', cwd=D:\work_imp\tomcat\bin
at org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoader.java:318)
at org.apache.solr.core.SolrResourceLoader.openConfig(SolrResourceLoader.java:283)
at org.apache.solr.core.Config.<init>(Config.java:103)
at org.apache.solr.core.Config.<init>(Config.java:73)
at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:117)
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:989)
... 11 more
2013-4-5 17:36:17 org.apache.solr.common.SolrException log
严重: null:org.apache.solr.common.SolrException: Unable to create core: collection1
at org.apache.solr.core.CoreContainer.recordAndThrow(CoreContainer.java:1672)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1057)
at org.apache.solr.core.CoreContainer$3.call(CoreContainer.java:634)
at org.apache.solr.core.CoreContainer$3.call(CoreContainer.java:629)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.solr.common.SolrException: Could not load config for solrconfig.xml
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:991)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1051)
... 10 more
Caused by: java.io.IOException: Can't find resource 'solrconfig.xml' in classpath or 'D:\work_imp\to
mcat\solrapp\solr\collection1\conf/', cwd=D:\work_imp\tomcat\bin
at org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoader.java:318)
at org.apache.solr.core.SolrResourceLoader.openConfig(SolrResourceLoader.java:283)
at org.apache.solr.core.Config.<init>(Config.java:103)
at org.apache.solr.core.Config.<init>(Config.java:73)
at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:117)
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:989)
... 11 more
解决办法:
找到tomcat对应部署的solr配置文件目录:
我对应的目录:D:\work_imp\tomcat\webapps\solr\WEB-INF\web.xml
打开web.xml 搜索env-entry,会看到如下代码:
<!--
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
-->
去掉注释,并编辑第二行,对应solr的目录
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/work_imp/tomcat/slorapp/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
红框中的value值即为solr.xml中的value值:
关闭tomcat,再次重启 不会报错 ,在浏览器中输入http://localhost:8080/solr/
会显示如下画面,表示运行成功!
页:
[1]