记录一次tomcat排错过程

现象环境描述:测试环境,一直在运行跨易达系统(业务系统),研发重新发了个war包,就访问不了了,提交到运维这边说是环境问题,于是我开始排查。

1、JAVA_HOME、CATALINA_HOME检查

[[email protected] conf]# echo $JAVA_HOME

/usr/local/jdk1.7.0_60

2、检查server.xml 

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

<Context path="" docBase="/usr/local/oss/greenpass/wtpwebapp/greenpass" debug="0"  crossContext="true"  reloadable="true" trusted="false" />

检查修改后的网站根目录,没有问题

浏览器访问提示,网页不存在

curl提示404

很奇怪,程序代码明明放在根目录里面,怎么会找不到呢!

3、查看日志

tail -f catalina.out,重新启动tomcat,提示日志错误如下:

里面有些错误和警告,主要是:

十一月 23, 2013 7:21:58 下午 org.apache.catalina.core.StandardContext startInternal

SERVER: Error filterStart

十一月 23, 2013 7:21:58 下午 org.apache.catalina.core.StandardContext startInternal

SERVER: Context [/st] startup failed due to previous errors

4、分析原因,解决方法

分析:Tomcat后台信息太少以至于不能得出问题空间出在哪儿(Tomcat的日志目录也无相关信息)通过配置Tomcat的Log,让它记录更多的日志信息,方能进一步分析原因。在不能启动的Web应用目录(我这里是st)下WEB-INF/classes目录中,新建logging.properties文件,内容参考如下

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

重新启动tomcat,在logs文件夹下面,会看到一个error-debug.log2016-05-23.log,如下图:

more error-debug.log2016-05-23.log,发现一个错误提示信息:

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name ‘dataSourceJdbc‘ defined in file [/usr/local/oss/greenpass/wtpwebapp/greenpass/WEB-INF/classes/config/spring/spring-datasource.xml]: Could not resolve placeholder ‘db1.driver‘ in string value

"${db1.driver}"

发现是web根目录的spring-datasource.xml里面的db1.driver没有定义,跟开发说了这个问题以后,注释掉这部分代码就能够正常访问了。

备注:server.xml里面有关于logs配置的信息,如下:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log." suffix=".txt"

pattern="%h %l %u %t &quot;%r&quot; %s %b" />

默认是开启的,每天会生成一个单独的日志,例如:localhost.2016-05-22.log,我的这一块的配置不知出于什么原因被注销了,不然也不会费这么长时间了。

时间: 2024-11-08 19:20:02

记录一次tomcat排错过程的相关文章

【Android实战】记录自学自己定义GifView过程,能同一时候支持gif和其它图片!【有用篇】

之前写了一篇博客.<[Android实战]记录自学自己定义GifView过程,具体解释属性那些事! [学习篇]> 关于自己定义GifView的,具体解说了学习过程及遇到的一些类的解释,然后完毕了一个项目,能通过在xml增加自己定义 view (MyGifView)中增加自己定义属性(my:gif_src = "@drawable/coffee").达到播放gif图片的效果. 可是.有几个问题 1.gif_src 属性仅仅支持 gif 图,并不支持其它类型的图片 2.仅仅支持

Tomcat关闭过程(Tomcat源码解析四)

我们在Tomcat启动过程(Tomcat源代码阅读系列之三)一文中已经知道Tomcat启动以后,会启动6条线程,他们分别如下: "ajp-bio-8009-AsyncTimeout" daemon prio=5 tid=7f8738afe000 nid=0x115ad6000 waiting on condition [115ad5000] "ajp-bio-8009-Acceptor-0" daemon prio=5 tid=7f8738b05800 nid=0x

记录一则ORA-00054,ORA-00031解决过程

生产环境:AIX 5.3 + Oracle 10.2.0.5 任务要求:普通表改造分区表,历史数据不要 这个需求很简单: pl/sql导出建表语句,依次修改成分区的建表语句,注意将索引修改成本地索引; drop 原表; create 新分区表. 1.重建过程中遇到问题:删除某表时报错ORA-00054,导致无法删除重建此表. SQL> drop table MOD_RESALT_PERF_CARR_1X_ZTE; create table MOD_RESALT_PERF_CARR_1X_ZTE(

Tomcat关闭过程

我们在 Tomcat启动过程(Tomcat源代码阅读系列之三) 一文中已经知道Tomcat启动以后,会启动6条线程,他们分别如下: Tomcat threads 1 2 3 4 5 6 7 8 9 10 11 "ajp-bio-8009-AsyncTimeout" daemon prio=5 tid=7f8738afe000 nid=0x115ad6000 waiting on condition [115ad5000] "ajp-bio-8009-Acceptor-0&qu

记录sqoop同步失败问题解决过程,过程真的是很崎岖。(1月6日解决)

记录sqoop同步失败问题解决过程,过程真的是很崎岖.事发原因:最近突然出现sqoop export to mysql时频繁出错.看了下日志是卡在某条数据过不去了,看异常.看sqoop生成的mr并未发现问题.最后把要export的原始数据拿notepad++打开发现中断的数据是奇怪的乱码,查了一下是二进制的数据. 乱码数据生成原因:我理解,api接口时接收流数据时长度和实际长度不符. 解决办法:两块要解决,一是接口时做好容错,二是同步时还是要对这种二进制做兼容,因为谁也无法保证二进制数据不会再出

step_by_step_记录deepin下curl安装过程

记录 deepin 下 curl 安装过程 1 wget https://curl.haxx.se/download/curl-7.55.1.tar.gz 2 3 4 tar xzfv curl-7.55.1.tar.gz 5 6 cd curl-7.55.1/ 7 8 ./configure 9 10 make 11 12 make install 13 14 15 curl curl: error while loading shared libraries: libcurl.so.4: c

Tomcat请求处理过程(Tomcat源码解析五)

前面已经分析完了Tomcat的启动和关闭过程,本篇就来接着分析一下Tomcat中请求的处理过程. 在开始本文之前,咋们首先来看看一个Http请求处理的过程,一般情况下是浏览器发送http请求->建立Socket连接->通过Socket读取数据->根据http协议解析数据->调用后台服务完成响应,详细的流程图如上图所示,等读者读完本篇,应该就清楚了上图所表达的意思.Tomcat既是一个HttpServer也是一个Servlet 容器,那么这里必然也涉及到如上过程,首先根据HTTP协议

Tomcat启动过程原理详解 -- 非常的报错:涉及了2个web.xml等文件的加载流程

Tomcat启动过程原理详解 发表于: Tomcat, Web Server, 旧文存档 | 作者: 谋万世全局者 标签: Tomcat,原理,启动过程,详解 基于Java的Web 应用程序是 servlet.JSP 页面.静态页面.类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器(诸如tomcat).Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的.Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源

Tomcat架构解析(二)-----Connector、Tomcat启动过程以及Server的创建过程

Connector用于跟客户端建立连接,获取客户端的Socket,交由Container处理.需要解决的问题有监听.协议以及处理器映射等等. 一.Connector设计   Connector要实现的主要功能如下: 设计图如下: 1.ProtocolHandler Connector中的ProtocolHandler用于处理不同的通信协议,Tomcat主要支持HTTP.AJP协议,并且支持BIO.NIO.APR等I/O方式.ProtocolHandler中使用AbstractEndpoint启动