注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

ocean's blog

平常心——可以寂寞,但不允许空虚

 
 
 

日志

 
 

探究TOMCAT设置失败的原因 [精华]   

2009-08-09 14:53:34|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

我是一名普通的JSP初学者,把我的学习心得写下来,希望能对初学者有所帮助。在学习的过程中遇到的第一个问题就是配置JSP的运行环境。在查找过若干资料之后我从官方网站下载了最新版的tomcat5.5.17的zip版。JDK下载了J2SDK1.4.2_11。运行环境Windows Xp Professional sp2环境变量具体设置如下:

JAVA_HOME: D:\j2sdk1.4.2_11

PATH:     D:\j2sdk1.4.2_11\bin;

CLASS_PATH: .;D:\j2sdk1.4.2_11\lib\dt.jar;D:\j2sdk1.4.2_11\lib\tools.jar;

CATALINA_HOME: D:\tomcat5.5

其中tomcat5.5为apache-tomcat-5.5.17.zip解压缩后重新命名的文件夹。首先要说明的是我的上述设置是失败的,并没有打开http://localhost:8080 具体的原因我会在后面为大家分析。

值得一提的是在学习设置的过程中我头脑里曾经产生过很多疑惑,比如exe和zip的tomcat到底有什么不同?为什么有的书介绍设置tomcat环境变量是采用的是TOMCAT_HOME,而有的书却写是CATALINA_HOME,而有的书却对tomcat的环境变量设置只字未提?一定有很多人曾经和我有过相同的疑惑。

要解决这些问题要从tomcat的启动开始分析:

首先说明在tomcat4以前确实是用TOMCAT_HOME来设置环境变量,在tomcat4以后采用了新的servlet容器catalina,所以环境变量也改为了CATALINA_HOME。

而为什么有的书没有提到设置tomcat环境变量呢?用文本编辑器打开tomcat的批处理文件startup.bat,可以发现首先判断CATALINA_HOME环境变量是否为空,如果为空就将当前目录设为CATALINA_HOME的值,接着判断当前目录下是否存在bin\catalina.bat如果不存在,就将当前目录的父目录设为CATALINA_HOME的值。可见在调用startup.bat命令时,tomcat会自动设置CATALINA_HOME,这就是为什么有的书没有介绍设置tomcat环境变量的原因。

如果环境变量CATALINA_HOME已经存在则通过这个环境变量调用bin目录下的“catalina.bat start”命令。由此可见执行startup.bak命令实际上执行的是“catalina.bat start”命令。

在了解了startup.bat文件的作用后我们也要了解一下真正负责启动tomcat服务器的catalina.bat文件。通过分析,他还调用了setclasspath.bat,在setclasspath.bat文件中它检查了java_home环境变量是否存在,并通过设置的环境变量java_home找到java.exe用与启动tomcat。在执行了setclasspath.bat后,catalina.bat就开始了tomcat服务器的启动进程。

另外catalina.bat run很有用,如果直接运行startup.bat那么显示的信息会一闪而过,不知道问题出在哪里,而catalina.bat run在遇到错误时仅仅是tomcat服务器异常终止,但却可以保留出错信息。

例如按照先前提到的环境变量设置我在MSDOS环境下运行catalina.bat run出现以下错误信息:

Using CATALINA_BASE: D:\tomcat5.5

Using CATALINA_HOME:    D:\tomcat5.5  

Using CATALINA_TMPDIR:  D:\tomcat5.5\temp

Using JRE_HOME:   D:\j2sdk1.4.2_11

This release of Apache Tomcat was Packaged to run on J2se5.0 or later. It can be run on earlier JVMS by downloading and installing a compatibility package from the Apache Tomcat binary download page.

大意是我的tomcat5.5.17适应在j2se5.0环境下运行,就是说我的JDK和我的tomcat不匹配,需要重新下载。原来问题出在这里,知道问题的来龙去脉也就有了解决方案。在tomcat的网站上下载tomcat5.0.28版本重新解压缩,设置环境变量如下:

JAVA_HOME:D:\j2sdk1.4.2_11

PATH:D:\j2sdk1.4.2_11\bin;

CLASS_PATH:.;D:\j2sdk1.4.2_11\lib\dt.jar;D:\j2sdk1.4.2_11\lib\tools.jar;

CATALINA_HOME: D:\tomcat5

重新启动tomcat运行startup.bak,建议在启动或关闭tomcat的时候在MSDOS下应用catalina.bat run可以清楚的看到环境变量的设置情况。在浏览器中输入http://localhost:8080 tomcat欢迎界面出现,问题解决。

如果问题仍然存在需要检查本机的8080端口是否被占用,方法可以通过编辑tomcat目录下conf子目录下的server.xml文件查找8080端口改为自己想要的端口,通常选1024以上,因为1024以下大部分为well-known port在固定的使用中。

如果问题仍然没有得到解决,请重新启动您的计算机。

通过实际应用笔者认为,exe版和zip版的tomcat无本质上的区别。

(Tips:在windows环境下设置环境变量的名字与大小写是无关的,也就是说JAVA_HOME和java_home是相同的;另外在CALSSPATH的设定中是以 .;开头的中间用;间隔,不要任意加空格;在出错以后一定要查看错误信息,以便找到解决问题的途径。)

http://www.cjsdn.net/post/view?bid=51&id=175800&sty=1&tpg=1&age=30


http://www.cjsdn.net/post/view?bid=51&id=175800&sty=1&tpg=1&age=30
  评论这张
 
阅读(437)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017