`
Jack-chen
  • 浏览: 71464 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat的启动脚本浅析

阅读更多
Tomcat的启动脚本浅析(三)
3. Tomcat启动遇到的常见问题
如果一切顺利,我们就可以看到非常熟悉的Tomcat窗口。但是,由于各种原因,我们可能会碰到一些问题,下面就具体分析一下Tomcat不能正常启动的原因。

3.1 环境变量设置问题
如果机器上没有安装JDK或者环境变量JAVA_HOME或CATALINA_HOME没有设置正确,Tomcat就不能正常启动。

3.1.1 下面这个错误对话框的意思是Windows不能发现“-Djava.endorsed.dirs=”命令,下面背景的黑窗口的错误是JAVA_HOME环境变量应该指向JDK而不是JRE的根目录(本例故意把把JAVA_HOME指向JRE的根目录,所以产生这个错误)。在这种情况下,我们在可以重新设置环境变量JAVA_HOME并指向JDK的安装目录即可。




3.1.2 下面这个错误是因为CATALINA_HOME环境变量设置不正确,从而造成Tomcat不能正常启动。
C:\carl>startup
CATALINA_HOME C:\
The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program

3.1.3 下面这个错误是由于错误地设置了Java启动参数xms256M,正确的写法应该是-Xms256M,请注意大小写。大家知道,在Java命令行中,-Xms表示JVM开始启动时所分配的内存大小,而-Xmx表示JVM运行时最大所能占用的的内存大小,如果您的应用程序所需的内存超过Xmx的值,JVM就会抛出Out of Memeory(内存不足)的异常而停止。当然,Xmx的最大值不应超过物理内存的70%。

D:\back\blog>start_tomcat_debug.bat
D:\back\blog>set JAVA_OPTS=-xms256M
D:\back\blog>rem 请将JAVA_HOME环境变量修改到您的JDK安装目录
D:\back\blog>set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_09
D:\back\blog>rem 请将CATALINA_HOME环境变量修改到您的Tomcat安装目录
D:\back\blog>set CATALINA_HOME=C:\carl\it\tomcat_research\jakarta-tomcat-5.0.28
D:\back\blog>rem 开始调用catalina.bat文件
D:\back\blog>call C:\carl\it\tomcat_research\jakarta-tomcat-5.0.28\bin\catalina.bat debug
Using CATALINA_BASE:   C:\carl\it\tomcat_research\jakarta-tomcat-5.0.28
Using CATALINA_HOME:   C:\carl\it\tomcat_research\jakarta-tomcat-5.0.28
Using CATALINA_TMPDIR: C:\carl\it\tomcat_research\jakarta-tomcat-5.0.28\temp
Using JAVA_HOME:   C:\Program Files\Java\jdk1.5.0_09
debug
无效的选项: -xms256M

用法:jdb <选项> <类> <参数> ...

如果遇到类似问题,可以用下面的方法重新设置一下JVM启动时的内存参数,在startup.bat脚本中加上下面这一行:

set JAVA_OPTS=-Xms256m -Xmx512m

上面这行表示Tomcat初始启动内存至少需要256M,而最大可能占用内存为为512M。有兴趣的读者可以在startup.bat里加上这行参数,启动Tomcat,您会从Windows任务管理器中看到您使用的内存迅速飙升。

3.2 Tomcat应用服务器的配置问题及其中部署的某个Web应用问题

3.2.1   Tomcat端口冲突,具体错误如下窗口所示。这表明缺省的8080端口已经被占有,所以Tomcat不能启动,我们可以通过修改Tomcat的配置文件server.xml来重新定义端口号即可启动,或者停止已经使用8080端口的程序。有时我们并没有启动Tomcat,也没有其它应用程序占用8080端口,但是Tomcat还抛出这个错误。这可能是因为上次我们关闭Tomcat时,并没有真正关闭Tomcat。在这种情况下,请从Windows任务管理器中检查一下有无一个java.exe的程序正在运行,如果发现,强行kill java.exe,然后重启试试。




3.2.2   Tomcat配置文件有错误,产生异常。有时我们在修改server.xml文件时,不小心多加或者多删了一个</>标签,可能造成Tomcat不能正常启动。下面的窗口说明了这个问题。




3.2.3   Tomcat中部署的某个Web应用发生异常。这时Tomcat能正常启动,但在Tomcat启动窗口里发现一大堆异常,如data source没有正确定义,程序抛出异常等等都有关系。下面的这个例子是Tomcat自带的balancer web应用程序启动时产生错误。该问题是因为我们错误的修改了balancer.xml文件造成的。




3.2.4   Web应用程序的jar文件丢失,如JDBC数据库连接文件class12.jar, mysql.jar没有拷贝到Webapp的WEB-INF\lib目录下就会产生异常。尤其要注意的是在Tomcat5以前的版本中,公共jar文件包通常放在Tomcat安装目录下的common\lib子目录中,但在Tomcat6.0中,这个公共目录改为lib子目录。

3.3 未知错误
3.3.1 有时Tomcat的启动窗口一闪而过,根本就看不出启动过程中发生了什么错误。这中间的原因有好多种,最常见的解决办法就是使用run命令,打开startup.bat文件,找到下面这行:

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

并将它修改为:

call "%EXECUTABLE%" run %CMD_LINE_ARGS%

这样,Tomcat启动时就不会弹出新窗口,我们就可以从容不迫地观察Tomcat的启动错误,并解决问题,请参考上面关于run命令的解释。

3.3.2 另外,阅读Tomcat的启动日志文件也是我们解决问题的重要办法,缺省的Tomcat日志是放在Tomcat安装目录的logs子目录下。例如下面这段日志说明JspServletViewer这个Web应用缺少Map Object的相关jar文件包,从而找不到com/esri/mo2/map/core/Layout这个Java类。

2008-02-23 11:19:30 StandardContext[/JspServletViewer]Exception sending context initialized event to listener instance of class com.esri.svr.cmn.FileRewriterContextListener
java.lang.NoClassDefFoundError: com/esri/mo2/map/core/Layout
at com.esri.svr.cat.ServiceXMLHandler.startElement ServiceXMLHandler.java:47)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)





作者:佚名


分享到:
评论

相关推荐

    tomcat启动脚本

    tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本tomcat启动脚本

    Tomcat启动停止脚本

    "Tomcat启动停止脚本"提供了这样的便利,使得操作过程自动化,特别是当需要将这些操作集成到服务器的计划任务中时。 一、Tomcat启动脚本 启动脚本通常名为`startup.sh`(在Unix/Linux环境)或`startup.bat`(在...

    tomcat6启动脚本

    《深入理解Tomcat6启动脚本》 在Java Web应用领域,Tomcat作为一个流行的开源Servlet容器,被广泛用于部署和管理Web应用程序。然而,要确保Tomcat顺利运行,正确理解和配置启动脚本至关重要。本文将详细解析Tomcat6...

    tomcat自启动脚本

    tomcat自启动脚本

    自动启动tomcat服务脚本

    加入系统启动任务,可以监测tomcat运行情况,当tomcat停止服务时,可以自动启动tomcat

    Windows 启动tomcat服务bat 可执行脚本

    Windows系统下 启动tomcat服务bat 可执行脚本,当开发人员想要通过在java中开发一个启动Windows系统下tomcat的脚本文件时,就可以使用我这个

    tomcat快捷启动脚本

    linux下tomcat快捷启动脚本,具体使用可参考这个地址的第5步. http://blog.csdn.net/qq1142003960/article/details/48295271

    linux下tomcat自动启动脚本

    教你如何在linux下配置tomcat自动启动的脚本

    tomcat自动启动脚本配置

    Tomcat 自动启动脚本配置 Tomato 自动启动脚本配置是指在 Linux 环境中,使用 shell 脚本来实现 Tomcat、JMS 和 Presto 的自动启动。在本文中,我们将介绍如何创建自动启动脚本、如何编写脚本信息、如何授权文件和...

    tomcat自启动脚本编写

    在Linux系统中,为了实现Tomcat的自启动,我们需要创建一个自启动脚本,并将其配置为在系统启动时自动执行。下面将详细讲解这个过程。 首先,我们需要在`/etc/init.d/`目录下创建一个名为`tomcat`的文件,这将是...

    linux 下 tomcat管理脚本

    linux 下 tomcat 管理脚本 启动停止状态等

    windows下tomcat自动启动vbs脚本

    ' 等待Tomcat启动完成 Do While oExec.Status = 0 WScript.Sleep 100 Loop ' 关闭对象 Set oExec = Nothing Set WshShell = Nothing ``` 在上面的脚本中,`CreateObject("WScript.Shell")` 创建了一个WScript ...

    tomcat安装脚本

    4. **权限设置**:为了保证Tomcat服务正常启动,脚本会为Tomcat目录及其子目录赋予适当的读写执行权限,通常以非root用户(如tomcat用户)运行Tomcat。 5. **启动配置**:安装脚本会创建或修改systemd服务单元文件...

    非常实用的Tomcat启动脚本实现方法

    本文将介绍如何通过创建普通用户和编写启动脚本来实现Tomcat的安全启动。 首先,创建普通用户用于Tomcat服务的操作,这是出于对服务器安全的考虑。通过使用`groupadd`命令增加一个用户组,然后用`useradd`命令创建...

    tomcat巡检脚本_new.zip

    linux系统下tomcat巡检脚本,适合多套系统每个跑很多tomcat的服务器巡检。如遇系统变量无法执行的,请自行在服务器上创建脚本,只粘贴内容。创建两个脚本,执行check_tomcat.sh即可。

    监测tomcat应用down自动启动脚本

    sleep 10 # 等待Tomcat启动完成 ``` 为了确保脚本的持续运行,我们可以将其配置为系统服务,例如使用`systemd`(在RHEL 7及更高版本中)或者`chkconfig`(在RHEL 5/6中)。创建一个名为`tomcat-monitor.service`的...

    linux 安装tomcat shell脚本

    最后,需要设置Tomcat启动脚本,并将其添加为开机启动服务: ```bash # 将Tomcat的bin/startup.sh和bin/shutdown.sh可执行 sudo chmod +x $CATALINA_HOME/bin/startup.sh sudo chmod +x $CATALINA_HOME/bin/...

Global site tag (gtag.js) - Google Analytics