Tomcat异常处理
2015-07-31 21:17
309 查看
初次接触tomcat各种问题层出不穷,就我最近遇到的问题做一个总结。
PS:我安装的JDK是1.8.0_51 tomcat版本:apache-tomcat-7.0.63 免安装版本
1.闪退问题
在cmd命令中在tomcat的bin目录下输入startup.bat
D:\tomcat\apache-tomcat-7.0.63\bin>startup.bat
Using CATALINA_BASE: "D:\tomcat\apache-tomcat-7.0.63"
Using CATALINA_HOME: "D:\tomcat\apache-tomcat-7.0.63"
Using CATALINA_TMPDIR: "D:\tomcat\apache-tomcat-7.0.63"
Using JRE_HOME: "C:\Program Files\Java\jre1.8.0_51"
Using CLASSPATH: "D:\tomcat\apache-tomcat-7.0.63\bin\bootstrap.jar;D:\tomcat\apache-tomcat-7.0.63\bin\tomcat-juli.jar"
1>说明启动正常,但是还是闪退,这时候你就需要去看tomcat安装目录下的logs文件,这个文件的作用是存放Tomcat服务器的日志文件,在tomcat
运行的时候产生动态的日志文件
文件内容:
七月 31, 2015 8:01:07 下午 org.apache.tomcat.util.digester.Digester fatalError
严重: Parse Fatal Error at line 140 column 6: 元素类型 "Host" 必须由匹配的结束标记 "</Host>" 终止。
此时说明在server.xml文件的<Host>不匹配了,因此到指定文件内改一下就好了。
2>此时还有可能是端口号被占用了。可以在cmd中用netstat -ano命令查看
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 932
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
注:
PID就是个进程的身份标示,程序一运行系统就会自动分配给进程一个独一无二的PID进程中止后PID被系统回收,
可能会被继续分配给新运行的程序。也就是进程号
nestat用法:
Netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
在cmd命令行中输入: netstat /? 显示如下
显示协议统计信息和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的
可执行程序。在某些情况下,已知可执行程序承载
多个独立的组件,这些情况下,
显示创建连接或侦听端口时
涉及的组件序列。在此情况下,可执行程序的
名称位于底部 [] 中,它调用的组件位于顶部,
直至达到 TCP/IP。注意,此选项
可能很耗时,并且在你没有足够
权限时可能失败。
-e 显示以太网统计信息。此选项可以与 -s 选项
结合使用。
-f 显示外部地址的完全限定
域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto
可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q 显示所有连接、侦听端口和绑定的
非侦听 TCP 端口。绑定的非侦听端口
不一定与活动连接相关联。
-r 显示路由表。
-s 显示每个协议的统计信息。默认情况下,
显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
-x 显示 NetworkDirect 连接、侦听器和共享
终结点。
-y 显示所有连接的 TCP 连接模板。
无法与其他选项结合使用。
interval 重新显示选定的统计信息,各个显示间暂停的
间隔秒数。按 CTRL+C 停止重新显示
统计信息。如果省略,则 netstat 将打印当前的
配置信息一次。
由上可以看出80端口号被占用且PID为4,那么现在就可以去查看到底被那个应用程序占用了
taklist | findstr "4"
System Idle Process 0 Services 0 4 K
System 4 Services 0 293,564 K
占用端口号为4的应用程序时System
关闭进程
taskkill /pid 4
错误: 无法终止 PID 为 4 的进程。
原因: 拒绝访问。
因为是系统进程,所以结束不掉。
2.JAVA_HOME环境变量没有配置好
1>在环境变量里面新建JAVA_HOME
JAVA_HOME=JDK安装目录
之后,在path后面添加;%JAVA_HOME%\bin 前面分号隔开别少了
2>之后再用户变量框下新建,变量名为classpath
变量值: classpath=.;%JAVA_HOME%\lib\tools.jar; %JAVA_HOME%\lib\rt.jar //前面是 .;
3>再在dos下输入java -version查看配置是否成功。
3.Tomcat环境配置有问题
1>需要对TOMCAT_HOME进行设置
TOMCAT_HOME=D:\tomcat\apache-tomcat-7.0.63
2>然后再classpath后面加%TOMCAT_HOME%\common\lib
在path后面添加 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\lib
3>最后启动bin目录下的startup.bat,在浏览器页面输入http://localhost:8080/如果出来了欢迎页面则表示成功了。
总结:在tomcat出现问题的时候,应该去logs文件下查看日志,然后看提示的错误,根据错误进行排除。
PS:我安装的JDK是1.8.0_51 tomcat版本:apache-tomcat-7.0.63 免安装版本
1.闪退问题
在cmd命令中在tomcat的bin目录下输入startup.bat
D:\tomcat\apache-tomcat-7.0.63\bin>startup.bat
Using CATALINA_BASE: "D:\tomcat\apache-tomcat-7.0.63"
Using CATALINA_HOME: "D:\tomcat\apache-tomcat-7.0.63"
Using CATALINA_TMPDIR: "D:\tomcat\apache-tomcat-7.0.63"
Using JRE_HOME: "C:\Program Files\Java\jre1.8.0_51"
Using CLASSPATH: "D:\tomcat\apache-tomcat-7.0.63\bin\bootstrap.jar;D:\tomcat\apache-tomcat-7.0.63\bin\tomcat-juli.jar"
1>说明启动正常,但是还是闪退,这时候你就需要去看tomcat安装目录下的logs文件,这个文件的作用是存放Tomcat服务器的日志文件,在tomcat
运行的时候产生动态的日志文件
文件内容:
七月 31, 2015 8:01:07 下午 org.apache.tomcat.util.digester.Digester fatalError
严重: Parse Fatal Error at line 140 column 6: 元素类型 "Host" 必须由匹配的结束标记 "</Host>" 终止。
此时说明在server.xml文件的<Host>不匹配了,因此到指定文件内改一下就好了。
2>此时还有可能是端口号被占用了。可以在cmd中用netstat -ano命令查看
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 932
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
注:
PID就是个进程的身份标示,程序一运行系统就会自动分配给进程一个独一无二的PID进程中止后PID被系统回收,
可能会被继续分配给新运行的程序。也就是进程号
nestat用法:
Netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
在cmd命令行中输入: netstat /? 显示如下
显示协议统计信息和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的
可执行程序。在某些情况下,已知可执行程序承载
多个独立的组件,这些情况下,
显示创建连接或侦听端口时
涉及的组件序列。在此情况下,可执行程序的
名称位于底部 [] 中,它调用的组件位于顶部,
直至达到 TCP/IP。注意,此选项
可能很耗时,并且在你没有足够
权限时可能失败。
-e 显示以太网统计信息。此选项可以与 -s 选项
结合使用。
-f 显示外部地址的完全限定
域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto
可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q 显示所有连接、侦听端口和绑定的
非侦听 TCP 端口。绑定的非侦听端口
不一定与活动连接相关联。
-r 显示路由表。
-s 显示每个协议的统计信息。默认情况下,
显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
-x 显示 NetworkDirect 连接、侦听器和共享
终结点。
-y 显示所有连接的 TCP 连接模板。
无法与其他选项结合使用。
interval 重新显示选定的统计信息,各个显示间暂停的
间隔秒数。按 CTRL+C 停止重新显示
统计信息。如果省略,则 netstat 将打印当前的
配置信息一次。
由上可以看出80端口号被占用且PID为4,那么现在就可以去查看到底被那个应用程序占用了
taklist | findstr "4"
System Idle Process 0 Services 0 4 K
System 4 Services 0 293,564 K
占用端口号为4的应用程序时System
关闭进程
taskkill /pid 4
错误: 无法终止 PID 为 4 的进程。
原因: 拒绝访问。
因为是系统进程,所以结束不掉。
2.JAVA_HOME环境变量没有配置好
1>在环境变量里面新建JAVA_HOME
JAVA_HOME=JDK安装目录
之后,在path后面添加;%JAVA_HOME%\bin 前面分号隔开别少了
2>之后再用户变量框下新建,变量名为classpath
变量值: classpath=.;%JAVA_HOME%\lib\tools.jar; %JAVA_HOME%\lib\rt.jar //前面是 .;
3>再在dos下输入java -version查看配置是否成功。
3.Tomcat环境配置有问题
1>需要对TOMCAT_HOME进行设置
TOMCAT_HOME=D:\tomcat\apache-tomcat-7.0.63
2>然后再classpath后面加%TOMCAT_HOME%\common\lib
在path后面添加 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\lib
3>最后启动bin目录下的startup.bat,在浏览器页面输入http://localhost:8080/如果出来了欢迎页面则表示成功了。
总结:在tomcat出现问题的时候,应该去logs文件下查看日志,然后看提示的错误,根据错误进行排除。
相关文章推荐
- Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试
- tomcat性能优化调整
- linux安装mysql、tomcat和jdk1.7、Android Studio
- tomcat一些参数的理解
- NFS server和NFS client tomcat OS用户必须具有相同的UID和账号
- 解决get方法传递URL参数中文乱码和解决tomcat下中文乱码问题
- 解决get方法传递URL参数中文乱码和解决tomcat下中文乱码问题
- linux apache2 tomcat7 mod_jk 整合
- Apache+tomcat ajp模式转发域名
- tomcat服务器监控工具之probe
- Tengine Tomcat 安装配置优化
- MyEclipse中配置Tomcat开发环境
- IntelliJ idea 14 集成 tomcat 7
- tomcat 下多项目共享jar包
- Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If
- windows系统中安装配置tomcat
- 用jdbc连接mysql数据库(tomcat服务器内置连接池篇)
- Deployment failure on Tomcat 6.x. Could not copy all resources to C:\tomcat6\webapps\OAPMS.
- Java学习必备之JDK和Tomcat配置
- linux部署jdk和tomcat