上一篇我们初识了Solr而且学习了Jetty的启动方式。查看了Solr的管理界面,这一篇我们来实如今Tomcat上部署执行Solr。

部署环境:

window7

jdk1.6.0_14

Solr-4.7.2

tomcat-6.0.37

Solr的安装配置Solr home 。主要介绍基于JNDI的配置。其他方式能够參考Solr的wiki。

基于JNDI配置

1:首先建立一个Solr的执行文件夹。

C:\solr-tomcat

将解压缩包中的D:\work\work-tools\solr\solr-4.7.2\solr-4.7.2\example\下的solr文件夹复制到C:\solr-tomcat下。

2:建立JNDI文件

在tomcat的D:\work\work-tools\webserver\tomcat-6.0.37\conf\Catalina\localhost以下创建solr.xml文件。

内容例如以下:

<?

xml version="1.0" encoding="UTF-8" standalone="yes"?

>
<Context docBase="D:\work\work-tools\webserver\tomcat-6.0.37\webapps\solr.war" debug="0" crossContext="true" >
? <Environment name="solr/home" type="java.lang.String" value="C:\solr-tomcat\solr" override="true" />
</Context>

3:改动server.xml的URI编码

在tomcat的D:\work\work-tools\webserver\tomcat-6.0.37\conf下编辑server.xml

 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

4:部署solr.war包

把D:\work\work-tools\solr\solr-4.7.2\solr-4.7.2\dist下的solr-4.7.2.war改动为solr.war复制到D:\work\work-tools\webserver\tomcat-6.0.37\webapp下。

5:配置日志

这一步非常关键,假设不配置会出现下面错误

Error filterStart

Context [/solr] startup failed due to previous errors

在这里看不出究竟出现了什么错误。大致仅仅知道在启动Context /solr的时候,之前有配置出现了错误,可是什么配置我们不知道。这时候能够查看一下tomcat的\tomcat-6.0.37\logs文件夹下查看localhost.2014-08-23.log日志。我们会看到具体出错信息。

严重: Exception starting filter SolrRequestFilter
java.lang.NoClassDefFoundError: Failed to initialize Apache Solr: Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. For more information, see: http://wiki.apache.org/solr/SolrLogging

这里说的非常清楚是SLF4J的jar没有。我们到solr-4.7.2\example\lib\ext下把全部的包都考到tomcat\lib文件夹下。

6:启动tomcat

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5keV9neA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">



6:查看solr的admin页面http://127.0.0.1:8080/solr

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5keV9neA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

总结:这些配置在solr的wiki上都有说明,而且都依照linux和windows分类,事实上solr真正的生产环境还是要部署在linux上的,由于Solr提供了一些用于測试及管理、维护较为方便的shell脚本。这样在linux运维solr是很方便的。

注:wiki地址http://wiki.apache.org/solr/SolrTomcat




Solr学习笔记-在Tomcat上部署执行Solr的更多相关文章

  1. Solr学习笔记(5)—— Spring Data Solr入门

    一.Spring Data Solr简介 前面已经介绍了通过solrJ来操作solr,那么我们如何将Solr的应用集成到Spring中?Spring Data Solr就是为了方便Solr的开发所研制 ...

  2. solr学习笔记-入门

    solr学习笔记 1.安装前准备 solr依赖java 8 运行环境,所以我们先安装java.如果没有java环境无法启动solr服务,并且会看到如下提示: [root@localhost solr- ...

  3. Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引

    Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...

  4. Solr学习笔记之1、环境搭建

    Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...

  5. Solr学习笔记之5、Component(组件)与Handler(处理器)学习

    Solr学习笔记之5.Component(组件)与Handler(处理器)学习 一.搜索篇 拼写检查(spellCheck) 作用:用来检查用户输入的检索内容是否存在,如果不存在则给它提示出相近或相似 ...

  6. Quartz学习笔记:集群部署&高可用

    Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...

  7. Solr学习笔记之2、集成IK中文分词器

    Solr学习笔记之2.集成IK中文分词器 一.下载IK中文分词器 IK中文分词器 此文IK版本:IK Analyer 2012-FF hotfix 1 完整分发包 二.在Solr中集成IK中文分词器 ...

  8. golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web

    golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web Nginx 部署 - beego: 简约 & 强大并存的 Go 应用框架https://bee ...

  9. Solr学习笔记之4、Solr配置文件简介

    Solr学习笔记之4.Solr配置文件简介 摘自<Solr in Action>. 1. solr.xml – Defines one or more cores per Solr ser ...

随机推荐

  1. Javascript实现摩斯码加密解密

    原文地址 作者:liaoyu 摩尔斯电码是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母.数字和标点符号,是由美国人萨缪尔·摩尔斯在1836年发明. 每一个字符(字母或数字)对应不同的 ...

  2. Android:双层嵌套ViewPager并添加单击事件

    仿网易新闻: 实现原理: 上面的导航栏是一个自定义的ViewGroup(类似ActionBar) 中间内容层是ViewPager套fragment实现左右切换滑动 fragment里面的布局是一个Li ...

  3. 安装Sublime Text 3插件

    按 Ctrl+` 或者如下图调出Console 粘贴以下代码到底部命令行并回车: import urllib.request,os; pf = 'Package Control.sublime-pac ...

  4. Java中的比较

    Java SE.Java EE.Java ME区别 是什么: Java SE=Java Standard Edition=J2SE= Java标准版 Java EE=Java Enterprise E ...

  5. jdbcTemplate 获取数据表结构

    jdbcTemplate 操作方法 /** *1.方法一: */ String sql = "select * from "+ tableName; //RowCountCallb ...

  6. BZOJ_1221_ [HNOI2001]_软件开发(最小费用流,网络流24题#10)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1221 n天,每天需要r个毛巾,用完以后可以洗,要么花fa洗a天,要么花fb洗b天,毛巾不够了可 ...

  7. jQuery的几个Grid插件简单比较

    目标:实现一个类似于Excel功能的Grid数据维护功能,并且就地编辑在乎的是Cell编辑而不是行编辑 候选者:easy-ui之datagrid, jqgrid, flexigrid 使用环境:jqu ...

  8. android中如何实现离线缓存

    离线缓存就是在网络畅通的情况下将从服务器收到的数据保存到本地,当网络断开之后直接读取本地文件中的数据. 将网络数据保存到本地: 你可以自己写一个保存数据成本地文件的方法,保存在android系统的任意 ...

  9. UVA 11426 GCD - Extreme (II) 欧拉函数

    分析:枚举每个数的贡献,欧拉函数筛法 #include <cstdio> #include <iostream> #include <ctime> #include ...

  10. 搭建自己的NuGet服务器,上传自定义NuGet包

    第一步搭建NuGet服务器 创建空Web项目 安装Nuget服务,目前最新版本2.8.2 安装完成,会自动生产服务,出现如下界面 发布该网站,并部署至IIS 将.nupkg文件发布至网站的Packag ...