Solr在eclipse上的调试流程

研究了半天的Solr在eclipse上的调试,终于让我如愿以偿了,对于想了解solr内部的实现机制和运行的逻辑十分有用,虽然楼主还没研究到solr的运行机制那么深,但是想给你讲搭一个环境,开始没有成功的原因是因为自己不够自信,一直在网上找一些这样的教程,教程十分少,说的也模糊,一直也没成功过,楼主一怒之下就决定自己搞一下,下面楼主就分享一下搭建这个可以调试的solr的过程。

1.需要solr的源码这个在官网上可以下的到,楼主下的是4.8.0版本的,链接就不贴了。

2.ant工具,这是一个很常见的编译工具,同样在官网上可以下的到,切换到solr源码的文件夹下面,使用 ant eclipse命令进行对源码的编译(这时候可能会报找不到一个ivy的包,这个也可以百度一下,下载下来加入到ant下面的lib文件夹里面即可)。编译完的结构大体是这样的:

上图和一个普通的java项目没什么区别,这时候问题来了,对大神来说运行它当然不成问题,但是对于小白来说就有些棘手了,楼主也曾经迷惑过。

3.运行这个java项目和运行一个web项目其实没什么区别,在根目录下面建一个WebContent的文件夹(这个类似于web工程下面的WebContent),这时候需要我们下载可以进行直接部署的solr4.8.0的包也就是solr4.8.0.zip,解压缩之后在\solr-4.8.0\example\webapps下找到solr.war文件,解压缩后复制到WebContent下面。

4.完成上述步骤之后,我们需要为solr配置一个solrhome用于保存collection的一些conf文件。找到solr-4.8.0\example下面的solehome文件夹复制到一个本机的目录,用于保存solrhome(网上有教程说和项目放在一起,但是楼主感觉这样有些乱,就单独提取出来了),接下来要在web.xml文件中对这个目录进行说明,让solr能找到配置文件。具体如下:

<env-entry>
      <env-entry-name>solr/home</env-entry-name>
      <env-entry-value>D:/solr-tomcat/solrhome</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>

这段配置要放在<web-app>里面,最好放在标签的最后(楼主是这样写的,可以根据实际情况改一下路径吧)。

5.完成上述操作之后,最重要的一步来了,那就是怎么运行项目,更改eclipse的servers下面的server.xml文件或者tomcat下面的server.xml文件,在<Host>标签里增加形式如下的代码:<Context docBase="E:/JAVA files/JAVA/solr-4.8.0/WebContent" path="/solr" reloadable="true"/>    docBase就是项目实际的绝对路径了,path是具体的项目的上下文。根据具体情况可以进行修改。配置正确之后就可以运行你的tomcat容器了,这时你会看见你的后台打印出了很多的信息,不要紧,这是正常的。

下面贴一下楼主的工程目录给大家做一下参考:


这时输入你的solr的地址吧 ,楼主的是http://localhost:8081/solr/#/;这样项目就起来了。



接下来要测试一下我们是否可以使用eclipse进行调试,在org.apache.solr.servlet.RedirectServlet类里面的dofilter()方法里面打端点(看看web.xml文件可以知道这个类是总的过滤器),以debug的方式进行启动tomcat,再次访问项目时你就会发现你的eclipse弹出来一个小框框哦!这就证明咱们的测试成功了。(上面这个配置是在windows下进行的Linux没有测试)。


对于编译源码有不清楚的地方,请留言,楼主可以把源码编译之后发送给大家。如果大家有更好更方便的方法也给楼主留言,楼主也想学习学习,大家也可以互相交流交流,如果说的不对的地方还请大家批评指正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值