webtet 发表于 2016-12-15 09:11:58

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]
查看完整版本: windows环境下运行solr example