tomcat下服务启动失败原因

Tomcat启动成功,输入网址后可以显示小黄猫界面,但是在Tomcat下的服务却启动不成功,显示404(以Jenkins为例,运用多种方式查看原因)

注:1、单启动Tomcat服务是可以启动成功的。

2、webapps下子服务的war包是没有问题的(建议从官网下载:http://mirrors.jenkins.io/war-stable/latest/jenkins.war

若满足以上2点子服务依旧不能启动成功,可使用如下几种方式检查

1、查看webapps下的war包是否正常解压,所没有解压成功,可手动解压在webapps下,然后重启Tomcat即可

2、查看Tomcat所用端口是否被占用,若是被占用可修改端口号(若是启动后背Java.exe所占用属于正常情况,因为启动后Tomcat会一直使用Java环境)

修改端口方式:

1)查看端口号是否被占用方式:https://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html

2)若是被占用,则在Tomcat的根(安装)目录下,找到conf文件夹,进入conf文件夹,在里面找到Server.xml文件

3)打开Server.xml文件,在文件中找到如下文本并进行修改并保存(共需要修改3处位置),保存后重启Tomcat即可

3、若是本地配置多个版本的Java环境也可影响到服务的启动(不同版本的Java环境可启动不同版本的Tomcat)

1)查看JVM版本

在Tomcat/bin下,双击version.bat脚本可查看详细信息,但是由于默认脚本不显示运行过程,故需要修改下DOS脚本

1.打开version.bat,将首行的@echo off修改成echo on,表示在控制台显示运行过程

2.在脚本末尾添加pause函数,表示脚本运行完之后不自动关闭cmd,可显示在桌面上

3.修改完之后保存脚本,再次双击version.bat脚本及可查看详细信息,其中JVM Version表示Tomcat服务使用的JVM版本

2)如果JDK不是想要的版本,则可在Tomcat/bin下找到setclasspath.bat脚本,手动修改其中的JRE路径(需要修改两处)

打开setclasspath.bat脚本,找到set "JRE_HOME=%JAVA_HOME%",把%JAVA_HOME%替换成本机需要使用的其他安装的jre路径,如set "JRE_HOME=D:\Program Files\Java\jre1.8.0_181",然后重启即可(所使用的jre需配置环境变量)

4、若以上三种方式皆没有问题,则根据Tomcat打印出的log查看具体原因

1)可在命令行输入java -jar jenkins.war查看报错原因(具体报错原因可自行报错)

2)查看Tomcat/logs下的catalina.log,主要是记录tomcat启动时候的信息,在里面可以看到启动的JVM参数以及操作系统等日志信息

问题显示为Jenkins war包的问题。tomcat启动时,项目包无法编译,导致失败

3)查看Tomcat/logs下的host-manager.log,主要记录服务器的返回状态。由于2)中连接失败,所以该log中显示404,等同于直接输入网址的页面显示状态

4)直接查看不能启动的子服务log

查看Tomcat/webapps中jenkins.out.log,会输出错误的原因点

问题显示JENKINS_HOME有问题,具体原因没有解释,继续往下查看,查看统一路径下jenkins.wrapper.log

问题显示是war包中出现了问题,但是没有具体标处war包问题的具体原因,但是有些源码的位置,若是有源码的童鞋可以直接去查看源码,定位问题,所示没有则继续向下查看jenkins.err.log,这个会直接显示出错误原因

问题显示找不到源文件,所以连接失败,与Tomcat/logs下的catalina.log记录点相似。若是此刻还不能判断问题的原因,则还有一个大招可以将问题原因直接输出在控制板上

5)在不能成成功部署的项目目录下WEB-INF/classes新建logging.properties文件

其内容为

org.apache.catalina.core.ContainerBase.[Catalina].level=INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers=java.util.logging.ConsoleHandler

然后重启tomcat,会在控制台打印出全部错误信息

最终问题确认为jdk的版本问题,代码中使用了很多jdk1.8的属性,但是我使用的jdk环境是1.7的所以报错,修改后即可成功。修改方法上述中有表述

备注:

1、查看问题的4个方法没有先后顺序,可以先使用添加logging.properties文件的方法输出问题在控制板上在根据其他方法进行修改或者确认,之所以确认该顺序是根据我自己出现问题后解决方式思路所确定的,进而多花费了很多时间,大家可根据自身情况选择定位问题的方法

2、最后的添加logging.properties文件的方法在关机重启后logging.properties文件中的内容会消失,若需要再次定位则需要重新添加那两句内容

原文地址:https://www.cnblogs.com/luoxin-test/p/10599380.html

时间: 2024-11-07 14:53:14

tomcat下服务启动失败原因的相关文章

tomcat服务启动失败系统提示错误代码4

[问题描述]tomcat服务启动失败,系统提示错误代码4.[原因分析]查找tomcat的logs目录下stdout.log日志,发现一句话: Error occurred during initialization of VMCould not reserve enough space for object heap翻译:VM初始化时发生错误无法为对象堆保留足够的空间 于是,猜测是配置的jvm内存问题,即jvm启动时内存不足引起.[解决办法]打开注册表,修改jvm内存设置,JvmMs和JvmMx

CentOS下,mysql服务启动失败

mysql服务启动失败,可以使用排除法查找原因: 如果修改了my.cnf后重启mysql服务失败,大多数情况下都是配置文件有错误, 可以通过备份原来的配置文件,然后将配置文件清空,只剩下[mysqld], 使用命令systemctl restart mysqld,如果能成功重启,说明配置文件出问题了, 修改配置文件即可. 如果以上做了之后还是不能重启,这是需要去查看mysql的log文件继续进行问题排查. 原文地址:https://www.cnblogs.com/ryanzheng/p/8496

CentOS 7下MySQL服务启动失败的解决思路

今天,启动MySQL服务器失败,如下所示: [[email protected] ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -

Exchange 邮件服务器传输服务启动失败

Exchange 邮件服务器传输服务启动失败 事件属性-事件ID 16023 日志名称:          Application 来源:            MSExchangeTransport 日期:            2014/10/1 14:51:50 事件 ID:         16023 任务类别:          配置 级别:            错误 关键字:           经典 用户:            暂缺 计算机:           TCS-MAI

安装VisualSVN Server 报" Service 'VisualSVN Server' failed to start. " 服务启动失败

安装VisualSVN Server 报"Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for more details"错误.原因是启动"VisualSVN Server"失败 2 咱们先来看一下这个服务在哪,计算机-右键-管理或者系统服务-在服务里面可以看到一个"VisualSVN Server"项,状

Apache服务启动失败couldn't start errorlog process, unable to open logs

在某用户环境下,Apache服务启动失败,报错信息如下 couldn't start errorlog process unable to open logs Apache是我们的产品组件,未防止日志过大 我们使用了Apache自带的切割滚存日志的组件rotatelogs.exe 在httpd.conf配置如下: ErrorLog "|bin/rotatelogs.exe logs/%Y%m%d%H%M%S_error.log 30M" 只要屏蔽这个设置,就可以正常启动Apache,谷

mac os 10.10下 openfire启动失败的问题记录

mac os 10.10下 openfire启动失败的问题记录 主要原因是在openfire 看了一些资料综合一下然后做一个记录 A.ctrl+空格=>终端 B.建议先获取文件夹权限 sudo chmod -R 777 /usr/local/openfire/bin C.然后再一行一行执行下面的命令 sudo sucd /usr/local/openfire/binexport JAVA_HOME=`/usr/libexec/java_home`echo $JAVA_HOME /Library/

在windows中将Tomcat作为服务启动

http://www.cnblogs.com/chuyuhuashi/archive/2012/04/28/2475315.html —————————————————————————————————————————————————————————— 在web服务器上通常需要是web容器随开机自动启动,恰好Tomcat可以作为服务启动,只要经过我们简单的配置,就可以将免安装版的Tomcat添加到系统服务中. 首先需要配置以下环境变量: JAVA_HOME:JDK 路径 JRE_HOME:JRE

阿里云CentOS 7.2 MySQL服务启动失败的解决思路

阿里云 CentOS 7.2 MySQL服务启动失败的解决思路 前言 : 昨天刚刚搭建好的MySQL让老大看了一下,经过测试已经完成任务.但是今天早晨来的时候发现服务器被关了,此时我的心情崩溃的,但是我非常冷静的解决了MySQL问题.如下: 启动MySQL服务器失败,如下所示: [[email protected] ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl):  Job for mysqld.service faile