Tomcat异常处理

来源:互联网 发布:软件测试用例编写 编辑:程序博客网 时间:2024/06/10 05:48
初次接触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文件下查看日志,然后看提示的错误,根据错误进行排除。
 
0 0
原创粉丝点击