在本地Eclipse运行solr源码

前言:本文记录了linux环境下,solr源码在本地Eclipse上部署运行的整个过程,对于其中遇到的每个报错现象以及解决的方法都有详细说明,如果部署过程中遇到相似问题,欢迎交流讨论!
部署环境:linux + jdk 1.8 + Eclipse +   tomcat 8.0 + solr 6.3
步骤:
一。jdk + Eclipse + tomcat 运行环境搭建,这个过程网上教程比较多,可以自己搜索,solr6.x需要jdk1.8,tomcat 8.0,所以安装的时候注意版本号。
二。solr源码下载编译
        下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr ,solr官网下载地址,下载solr源码
solr-6.3.0-src.tgz。
      在本地解压源码包:
        在本地Eclipse运行solr源码
      解压后进入项目,solr采用ant编译,编译之前需要预先安装ant编译环境,这个网上有教程,可以自己查找。
      ant安装成功后,执行编译命令,先编译成Eclipse项目,编译指令:ant eclipse。
     在本地Eclipse运行solr源码
      编译成功后会有提示
       在本地Eclipse运行solr源码
三。将项目导入Eclipse并且转化成web项目
        打开Eclipse,选择左上角 File → Import → Existing Projects into Workspace ,选择项目路径,将项目导入到Eclipse中。
       在本地Eclipse运行solr源码
     导入完成后将该项目转化成web项目。
     右键点击项目,选择Properties,点击 Project Facets,选中Dynamic Web Module,并且将后面的version改成2.5,然后选中java。
     在本地Eclipse运行solr源码
     点击最下面的Further configuration and available,将Content directory 改为 Webapps
     点击确定,完成后如图所示
          在本地Eclipse运行solr源码
  四。文件配置
      将 solr-6.3.0/Webapps/WEB-INF目录删除,然后将 solr-6.3.0/solr/webapp/web/ 目录下的所有文件拷贝到 solr-6.3.0/Webapps/ 下
     solr-6.3.0/Webapps/ WEB-INF下新建文件夹lib,将solr-6.3.0/solr/server/lib/ext里面的所有文件拷贝进去。
      进入到 solr-6.3.0/solr下执行命令 ant compile,会在core跟solrj目录下生成项目依赖的jar包。
      将solr-6.3.0/solr/core/lib, solr-6.3.0/solr/solrj/lib 目录下的jar包全部拷贝到 solr-6.3.0/Webapps/ WEB-INF/lib 目录下
    在solr-6.3.0目录下新建文件夹:solrhome,更改文件solr-6.3.0/Webapps/WEB-INF/web.xml。
在本地Eclipse运行solr源码
同时将文件最后部分注释,否则页面访问的时候会因为权限问题访问不了。

在本地Eclipse运行solr源码
     将solr-6.3.0/solr/server/solr下的所有文件拷贝到solrhome下面
     在solr-6.3.0/Webapps/WEB-INF 下新建目录classes,将solr-6.3.0/solr/server/resources 下的log4j.properties拷入其中。
    到现在,配置基本完成。
五。运行调试
      在Eclipse运行代码,报错,网上查找办法,要下载支持Lambda的jdk。
在本地Eclipse运行solr源码
   后来发现刚开始用的jdk版本为jdk1.8.0_101,但是对应java版本还是1.9,重新下载jdk1.8.0_112,在s olr-6.3.0/solr重新执行编译指令,将jar包拷到web目录下。重新启动Eclipse,目前没有报错。
在本地Eclipse运行solr源码
   在浏览器中输入访问地址:http://localhost:8080/solr-6.3.0/index.html
  在本地Eclipse运行solr源码
发现页面还是有问题,查看后台日志,果然报错了,继续寻找解决方法:
在本地Eclipse运行solr源码

网上查找发现是tomcat版本的问题,tomcat8.0.38添加了url格式检查,将tomcat版本更改为 8.0.35,重新启动服务,大功告成!
在本地Eclipse运行solr源码
Solr源码在MyEclipse下的搭建 1. 下载并按装Ant 下载地址: http://ant.apache.org/bindownload.cgi Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin 在cmd中输入ant -v, 有下图结果表示成功安装 2. 下载Solr源码 下载地址: http://lucene.apache.org/solr/mirrors-solr-latest-redir.html 3. 用Ant把Solr源码转换为MyEclipse Web项目 进入Solr源码的根目录 在cmd中输入ant eclipse, 按回车后你将会看到如下画面, 如果你的c:\Users\用户名\.ant\lib下没有ivy jar包的话 此时你按它说的那样需输入ant ivy-bootstrap命令下载ivy, 当然你也可以直接吧ivy jar包直接放入c:\Users\用户名\.ant\lib下 下好后再输入刚才的ant eclipse命令,回车后你会看到一堆信息,此时表明ant已经再帮你生成项目了。期间会等一段时间,在这期间也可能会出现fault信息,而且就是它可能造成你很久都看不到成功生成,在我目前遇到的情况下的解决办法是,再输入一遍命令,之后就看你的点了,或者你有更好的解决办法。 4. 把Eclipse普通项目转化为web项目 如果是Eclipse可以看考百度。这里只介绍MyEclipse的转化方法。 1. 在项目根目录下创建一个WebRoot文件夹 2. 找一个MyEclipse Web项目,把.project文件中的<buildSpec>...</buildSpec>和<natures>...</natures>标签中的内容复制到生成的项目中的.project文件中。 3. 找到Web项目中的.mymetadata文件,看看里面的内容,就知道怎么回事了。 4. 求改项目编译结果的存放地址,找到"<classpathentry kind="output"..."部分,修改path的值为WebRoot/WEB-INF/classes,这样就可以跑自己的代码了。 5. 配置Solr运行环境 1. 把solr.war(solr-4.2.0\example\solr-webapp\solr.war)里的东西全复制到WebRoot下 2. 创建solr/home, 把solr-4.2.0\example\solr所有文件复制到你创建的solr/home目录下 3. 创建JNDI让程序找到solr/home(当然你也可以用System Properties方式), 在WebRoot/META-INF目下创建context.xml 文件,并写入以下字符 <?xml version='1.0' encoding='utf-8'?> <Context> <Environment name="solr/home" type="java.lang.String" value="E:\Solr" override="true" /> </Context> 注:value对应地址即你创建的solr/home目录地址 4. 部署到tomcat,开始Solr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值