tomcat启动分析

tomcat启动分析
tomcat启动分析

1 - Tomcat Server的组成部分

1.1 - Server

A Server element represents the entire Catalina servlet container. (Singleton)

1.2 - Service

A Service element represents the combination of one or more Connector components that share a single Engine

Service是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求

1.3 - Connector

一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine 来处理,从Engine处获得回应并返回客户

TOMCAT有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其它WebServer的请求

Coyote Http/1.1 Connector 在端口8080处侦听来自客户browser的http请求 Coyote JK2 Connector 在端口8009处侦听来自其它WebServer(Apache)的servlet/jsp代理请求

1.4 - Engine

The Engine element represents the entire request processing machinery associated with a particular Service

It receives and processes all requests from one or more Connectors and returns the completed response to the Connector for ultimate transmission back to the client

Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名 当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理

Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理

1.5 - Host

代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain Name 相匹配

每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个Web App对应

于一个Context,有一个Context path

当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理

匹配的方法是“最长匹配”,所以一个path==""的Context将成为该Host的默认Context

所有无法和其它Context的路径名匹配的请求都将最终和该默认Context匹配 1.6 - Context

一个Context对应于一个Web Application,一个Web Application由一个或者多个Servlet组成

Context在创建的时候将根据配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml载入Servlet类

当Context获得请求时,将在自己的映射表(mapping table)中寻找相匹配的Servlet类

如果找到,则执行该类,获得请求的回应,并返回

2 - Tomcat Server的结构图

3 - 配置文件$CATALINA_HOME/conf/server.xml的说明

该文件描述了如何启动Tomcat Server

4 - Context的部署配置文件web.xml的说明

一个Context对应于一个Web App,每个Web App是由一个或者多个servlet组成的

当一个Web App被初始化的时候,它将用自己的ClassLoader对象载入“部署配置文件web.xml”中定义的每个servlet类

它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类

然后载入在自己的Web App根目录下的WEB-INF/web.xml中部署的servlet类 web.xml文件有两部分:servlet类定义和servlet映射定义

每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和某种URL PATTERN对应

当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求回应

分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入

5 - Tomcat Server处理一个http请求的过程

假设来自客户的请求为:

http://localhost:8080/wsota/wsota_index.jsp

1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector 获得

2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应

3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host

4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host 处理,因为该Host被定义为该Engine的默认主机)

5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context

6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)

7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table 中寻找对应的servlet

8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类

9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法

10)Context把执行完了之后的HttpServletResponse对象返回给Host

11)Host把HttpServletResponse对象返回给Engine

12)Engine把HttpServletResponse对象返回给Connector

13)Connector把HttpServletResponse对象返回给客户browser

default

org.apache.catalina.servlets.DefaultServlet

debug

0

listings

true

1

invoker

org.apache.catalina.servlets.InvokerServlet

debug

0

2

jsp

org.apache.jasper.servlet.JspServlet

logVerbosityLevel

WARNING

3

default

/

invoker

/servlet/*

jsp

*.jsp

... ... ... ...

className="org.apache.catalina.mbeans.ServerLifecycleListener"

debug="0"/>

className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListene

r" debug="0"/>

... ... ... ...

minProcessors="5" maxProcessors="75" acceptCount="100" enableLookups="true" redirectPort="8443"

debug="0"

connectionTimeout="20000"

useURIValidationHack="false"

disableUploadTimeout="true" />

4 - Context的部署配置文件web.xml的说明

一个Context对应于一个Web App,每个Web App是由一个或者多个servlet组成的

当一个Web App被初始化的时候,它将用自己的ClassLoader对象载入“部署配置文件

web.xml”中定义的每个servlet类

它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类

然后载入在自己的Web App根目录下的WEB-INF/web.xml中部署的servlet类

web.xml文件有两部分:servlet类定义和servlet映射定义

每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和

某种URL PATTERN对应

当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求

回应

分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入

default

org.apache.catalina.servlets.DefaultServlet

debug

0

listings

true

1

处理一个WEB APP中的匿名servlet

当一个servlet被编写并编译放入/WEB-INF/classes/中,却没有在/WEB-INF/web.xml中定义的时候

该servlet被调用,把匿名servlet映射成/servlet/ClassName的形式

URL PATTERN MAPPING : /servlet/*

-->

invoker

org.apache.catalina.servlets.InvokerServlet

debug

0

2

jsp

org.apache.jasper.servlet.JspServlet

logVerbosityLevel

WARNING

3

default

/

invoker

/servlet/*

jsp

*.jsp

... ... ... ...

5 - Tomcat Server处理一个http请求的过程

假设来自客户的请求为:

http://localhost:8080/wsota/wsota_index.jsp

1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得

2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应

3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host

4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)

5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context

6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context 去处理)

7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet

8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类

9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet 或doPost方法

10)Context把执行完了之后的HttpServletResponse对象返回给Host

11)Host把HttpServletResponse对象返回给Engine

12)Engine把HttpServletResponse对象返回给Connector

13)Connector把HttpServletResponse对象返回给客户browser

一、Tomcat背景

自从JSP发布之后,推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持 Servlet, 这样Tomcat就诞生了。Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的 java产品,同时它又是sun 公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。Tomcat与Apache的组合相当完美。

二、Tomcat目录

tomcat

|---bin Tomcat:存放启动和关闭tomcat脚本;

|---conf Tomcat:存放不同的配置文件(server.xml和web.xml);

|---doc:存放Tomcat文档;

|---lib/japser/common:存放Tomcat运行需要的库文件(JARS);

|---logs:存放Tomcat执行时的LOG文件;

|---src:存放Tomcat的源代码;

|---webapps:Tomcat的主要Web发布目录(包括应用程序示例);

|---work:存放jsp编译后产生的class文件;

三、Tomcat类加载

Bootstrap($JA V A_HOME/jre/lib/ext/*.jar)

System($CLASSPATH/*.class和指定的jar)

Common($CATALINA_HOME/common 下的classes,lib,endores三个子目录)

Catalina ($CATALINA_HOME/server/下的classes和lib目录仅对Tomcat可见)

&Shared($CATALINA_HOME/shared/下的classes和lib目录以及$CATALINA_HOME /lib目录)仅对Web应用程序可见,对Tomcat不可见WebApp($WEBAPP/Web-INF/*仅对该WEB应用可见classes /*.class lib/*.jar)

加载类和资源的顺序为:

1、/Web-INF/classes

2、/Web-INF/lib/*.jar

3、Bootstrap

4、System

5、$CATALINA_HOME/common/classes

6、$CATALINA_HOME/common/endores/*.jar

7、$CATALINA_HOME/common/lib/*.jar

8、$CATALINA_HOME/shared/classes

9、$CATALINA_HOME/shared/lib/*.jar

四、server.xml配置简介:

下面讲述这个文件中的基本配置信息,更具体的配置信息请参考tomcat的文档:server:

1、port 指定一个端口,这个端口负责监听关闭tomcat的请求

2、shutdown 指定向端口发送的命令字符串

service:

1、name 指定service的名字

Connector (表示客户端和service之间的连接):

1、port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求

2、minProcessors 服务器启动时创建的处理请求的线程数

3、maxProcessors 最大可以创建的处理请求的线程数

4、enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip

地址

5、redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号

6、acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

7、connectionTimeout 指定超时的时间数(以毫秒为单位)

Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求):

1、defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name 属性值是一样的

Context (表示一个web应用程序):

1、docBase 应用程序的路径或者是WAR文件存放的路径

2、path 表示此web应用程序的url的前缀,这样请求的url为

http://localhost:8080/path/****

3、reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的

/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可

以在不重起tomcat的情况下改变应用程序

host (表示一个虚拟主机):

1、name 指定主机名

2、appBase 应用程序基本目录,即存放应用程序的目录

3、unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序

Logger (表示日志,调试和错误信息):

1、className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口

2、prefix 指定log文件的前缀

3、suffix 指定log文件的后缀

4、timestamp 如果为true,则log文件名中要加入时间,如下

例:localhost_log.2001-10-04.txt

Realm (表示存放用户名,密码及role的数据库):

1、className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样):

1、className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve 类可以记录应用程序的访问信息

directory(指定log文件存放的位置):

1、pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行

请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记

录的值更多

五、web.xml配置简介:

1

 、默认(欢迎)文件的设置

 在tomcat4\conf\web.xml中,与IIS中的默认文件意思相同。

-file-list>

-file>index.html

-file>index.htm

-file>index.jsp

-file-list>

 、报错文件的设置

2

-page>

-code>404

ocation>

/notFileFound.jsp

-page>

-page>

-type>https://www.360docs.net/doc/a116194644.html,ng.NullPointerException

/null.jsp

-page>

如果某文件资源没有找到,服务器要报404错误,按上述配置则会调用\webapps\ROOT\notFileFound.jsp。

如果执行的某个JSP文件产生NullPointException ,则会调用\webapps\ROOT\null.jsp 、会话超时的设置

3

设置session 的过期时间,单位是分钟;

-config>

-timeout>30

-config>

 、过滤器的设置

4

-name>FilterSource

-class>project4. FilterSource

-mapping>

-name>FilterSource

-pattern>/WwwServlet

-pattern>/haha/*)

(

-mapping>

过滤:

1)

身份验证的过滤Authentication Filters

 日志和审核的过滤Logging and Auditing Filters

 2)

3)

图片转化的过滤Image conversion Filters

数据压缩的过滤Data compression Filters

4)

加密过滤Encryption Filters

5)

6) Tokenizing Filters

资源访问事件触发的过滤Filters that trigger resource access events XSL/T 过滤XSL/T

7)

filters

 内容类型的过滤Mime-type chain Filter 注意监听器的顺序,如:先安全过滤,然后 9)

资源,

然后内容类型等,这个顺序可以自己定。

六、管理

1、用户配置

在进行具体Tomcat管理之前,先给tomcat添加一个用户,使这个用户有权限来进行管理。

打开conf目录下的tomcat-users.xml文件,在相应的位置添加下面一行:

然后重起tomcat,在浏览器中输入http://localhost:8080/manager/,会弹出对话框,输入上面的用户

名和密码即可。

2、应用程序列表

在浏览器中输入http://localhost:8080/manager/list,浏览器将会显示如下的信息:

OK - Listed applications for virtual host localhost

/ex:running:1

/examples:running:1

/webdav:running:0

/tomcat-docs:running:0

/manager:running:0

/:running:0

上面显示的信息分别为:应用程序的路径、当前状态、连接这个程序的session数

3、重新装载应用程序

在浏览器中输入 http://localhost:8080/manager/reload?path=/examples,浏览器显示如下:OK - Reloaded application at context path /examples

这表示example应用程序装载成功,如果我们将server.xml的Context元素的reloadable属性设为true,则没必要利用这种方式重新装载应用程序,因为tomcat会自动装载。

4、显示session信息

在浏览器中输入http://localhost:8080/manager/sessions?path=/examples,浏览器显示如下:

OK - Session information for application at context path /examples Default maximum session inactive

interval 30 minutes

5、启动和关闭应用程序

在浏览器中输入http://localhost:8080/manager/start?path=/examples和

http://localhost:8080/manager/stop?path=/examples分别启动和关闭examples应用程序。

Tomcat使用维护手册-河南

From: 编号: To: 版本号:1.1 Cc: 存档路径: Tomcat使用维护手册-河南 1现场tomcat的启动方法 1.1管理员页面启动方法 ●登录account1 ●su – blues ●su ●bash ●cd /home/soft/jakarta-tomcat-4.1.27/bin ●./shutdown.sh ●cd /home/soft/jakarta-tomcat-4.1.27/work ●rm -fr * ●等待2-3 ●/home/soft/jakarta-tomcat-4.1.27/bin/startup.sh访问: http://218.29.0.251/kuandai/index.jsp确认启动效果 1.2Enus自服务页面启动方法 ●登录account2 ●su – blues ●su ●bash ●cd /usr/local/tomcat/bin ●./shutdown.sh ●cd /usr/local/tomcat/work ●rm -fr * ●等待2-3分钟 ●/usr/local/tomcat/bin/startup.sh 访问:http://218.29.0.252:8080/kuandai/self.jsp确认启动效果

1.3统计的页面的启动方法 ●登录account1 ●su - stat ●cd /opt/stat/stattomcat/jakarta-tomcat-4.0.3/bin ●./shutdown.sh ●cd /opt/stat/stattomcat/jakarta-tomcat-4.0.3/work ●rm -fr * ●等待2-3分钟 ●/opt/stat/stattomcat/jakarta-tomcat-4.0.3/bin/startup.sh 访问:http://218.29.0.251:8088/stat/index.jsp确认启动效果 1.4Cnus 自维护页面的启动方法 ●登录Fep12 ●su – cnus13 ●cd /home/cnus13/tomcat/bin ●./shutdown.sh ●cd /home/cnus13/tomcat/work ●rm -fr * ●等待2-3分钟(netstat –an|grep 80) ●/home/cnus13/tomcat/bin/./startup.sh 访问:https://www.360docs.net/doc/a116194644.html,输入用户名,密码,确认Cnus工作状态。 1.5监控页面的启动方法 ●登录Fep3 ●su – root ●cd /usr/local/tomcatjk/bin ●./shutdown.sh ●cd /usr/local/tomcatjk/work ●rm -fr * ●等待2-3分钟 ●/usr/local/tomcatjk/bin/startup.sh 访问:http://218.29.0.229:7123/kuandai/login.jsp确认启动效果。

(完整版)Tomcat6操作手册

Tomcat6操作手册 安装tomcat软件(此处用到的是tomcat的ZIP包,直接解压即可) 我在D盘下创建一个名为App的文件夹,然后将tomcat的ZIP包解压到此文件夹下 在D:\App\apache-tomcat-6.0.20\conf的文件夹下有个名为server.xml的文件,这是tomcat 的配置文件,里面有说明此软件的服务端口等信息,这些端口都可以修改,不过不要与其他的软件端口冲突了 Tomcat服务关闭的端口:8005 服务访问的端口:8080,还要在下面加一句话:URIEncoding="utf-8" 防止出现乱码 以及ajp的整合端口(tomcat与iis或者apache整合):8009,而Tomcat默认的SSL端口号是8443

项目的存放位置,默认在tomcat安装目录下的webapps内,也可以放在其他盘符下,只要将路径改为所要存放项目的路径即可 Webapps文件夹存放网站项目,或者说是网页文件,而webapps\ROOT目录是项目主应用程序,也是http: ip :8080访问时的主程序,一般情况下将除了ROOT的其他目录都删除,因为其他的目录都是放实例的,无用 lib文件夹用于存放java包,后缀名:.jar

看完这些文件后,要将tomcat的服务启动,以便访问网页,因为不是用.exe的安装程序安装的tomcat,所以服务不会自动加到系统里,我们要手动加入系统内 一种方法:启动tomcat的服务,只需要双击startup.bat即可,当出现“信息: Server startup in 511 ms”时,证明服务已经启动,也可以访问tomcat的页面了,但是这个cmd 框不能关掉,关掉后服务关闭 另一种方法:将服务加到系统内。先要进入到D:\App\apache-tomcat-6.0.20\bin目录下,然后执行service.bat install tomcat的命令(用法是:service.bat install/remove [service_name]),就会将tomcat的服务加到系统服务内,服务名称为Apache Tomcat tomcat 启动服务

win8中tomcat8.0配置以及sts中启动的说明讲解

关于win8系统tomcat配置以及在sts中启动的说明1.下载tomcat(下载地址:https://https://www.360docs.net/doc/a116194644.html,/) 本人下载的是tomcat8.0版本。 2.点击tomcat8.0进入下载选择界面 3.下载之后将下载的zip文件解压存放到某磁盘根目录下(也可放在其他位置,

但是路径中不要出现中文,本人放在D盘根目录下了) 4.由于是免安装的文件,因此下一步需要进行的就是配置环境变量(前提是在已经配置好jdk的情况下,配置jdk可以参考网上的教程) (1)右键点击我的电脑(这台电脑),点击属性出现如下界面 (2)点击上图中的高级系统设置进入下面界面,之后点击环境变量

(3)点击环境变量之后进入一下界面

(4)点击如图所示的新建按钮新建一个CATALINA_BASE变量,一个CATALINA_HOME 变量,变量值为tomcat文件夹的位置,本人的tomcat存放在D:\apache-tomcat-8.0.32

(5)选中PATH点击编辑,在变量值最后加上;%CATALINA_HOME%\bin;(如果原来在最后有”;”,则不用再%前加入”;”,若没有则需要加入,另外”;”必须为英文字符 (6)这样环境变量就测试完毕,接下来测试是否配置成功,使用快捷键windows+r 打开cmd,回车,之后输入startup回车,之后出现如下两图则表示配置成功。之后右键我的电脑(这台电脑)打开管理,找到服务,启动Apache Tomcat 8.0.32 Server之后打开浏览器输入Http://localhost:8080测试是否出现一下界面,若出现则成功(若出现问题则配置出现问题,或者之前有过tomcat残留文件,需要清空注册表重新配置)

tomcat启动的时候就调用某个action

Tomcat启动时就执行某个action 高福来 这个问题我倒腾了1天的时间,首先action是一个请求,如何来发送这个请求就是一个问题,解决的方法是用spring来管理它,这样在初始化spring容器之后就可以获取bean了;另外就是如何初始化呢?也即是只让它运行一次,在服务器启动的时间就开始运行。实现ServletContextListener这个接口就行,它是在系统启动的时候就执行。 public class MyListener implements ServletContextListener{ public void contextDestroyed(ServletContextEvent event) { // TODO Auto-generated method stub } public void contextInitialized(ServletContextEvent event) { // TODO Auto-generated method stub System.out.println("I am running..."); ApplicationContext context=new FileSystemXmlApplicationContext("classpath:applicationContext.xml "); DemoAction demo=(DemoAction)context.getBean("test"); try { demo.execute(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 然后在web.xml中配置下就行了。 org.springframework.web.context.ContextLoaderL istener com.role.utils.MyListener contextConfigLocation classpath:applicationContext.xml

Tomcat部署项目时启动报错总结

Tomcat部署项目时启动报错总结 1、虚拟机报错端口被占用 tomcat的默认端口是8080(或者其他自己设置的),可能已经被其他占用。 解决方法:在tomcat安装路径下conf文件夹中的server.xml中把断口号改掉!如果一台机 器上使用多个tomcat,则改掉所有相关的端口避免重复了,包括想如下 在server.xml中找到如下地方改掉port的值 ● ●(改完后看看和本机上正在用 的tomcat是不是有重复的port) 2、tomcat的启动窗口一闪而过 Tomcat启动的dos窗口一闪而过,如何看出错信息? 在DOS窗口运行STARTUP.BAT文件, 另外,吧startup.bat文件最后的 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 改成: call "%EXECUTABLE%" run %CMD_LINE_ARGS% 分析原因1:jdk的环境变量没有配置好 解决方法:检查jdk环境变量的配置是否正确,或者重新配置jdk的系统环境变量JDK环境变量配置的步骤如下: 1.我的电脑-->属性-->高级-->环境变量. 2.配置用户变量: a.新建JAVA_HOME C:\Program Files\Java\j2sdk1.5.0(JDK的安装路径) b.新建 PATH (注意:把java的配置放在path的最前面) %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin c.新建CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 3.测试环境变量配置是否成功: 开始-->运行--〉CMD 键盘敲入:JAVAC JAVA 出现相应的命令,而不是出错信息,即表示配置成功! 环境变量配置的理解: 1. PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin 目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。 2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。 3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

Ubuntu下tomcat无法启动解决办法

Ubuntu下tomcat无法启动解决办法 Ubuntu下tomcat无法启动困扰了三天,总是提示Neither the JA V A_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program JA V A_HOME=/home/treesky/jdk1.5.0_16 CLASSPATH=.:/home/treesky/jdk1.5.0_16/lib JRE_HOME=/home/treesky/jdk1.5.0_16/jre PATH=$PATH:/home/treesky/jdk1.5.0_16/bin 其实最终的原因就是环境变量没有生效。 // 进入root帐户在普通用户也可以 sudo -s //用编辑器打开.bashrc文件 gedit .bashrc 在普通用户下注意加上sudo //在最后一行添加如上面的环境变量(文件位置根据自己的实际情况) //重启生效。 //给tomcat文件夹及所有文件赋予权限777 chmod 777 /opt/tomcat -R //开启tomcat服务

/opt/tomcat/bin/startup.sh 如果在出现类似问题打印一下环境变量看看是否正确如果正确重新按照上面的方法赋予权限! echo $JA V A_HOME echo $JRE_HOME echo $PATH root直接打普通加上sudo echo $JA V A_HOME 厚德载物,大道若弦...

Tomcat(免安装版)的安装与配置

Tomcat(免安装版)的安装与配置 一、下载Tomcat Tomcat可以从https://www.360docs.net/doc/a116194644.html,/网站下载,选择任意版本,在 Binary Distributions 下的zip包既是。 二、配置Tomcat 1、将下载Tomcat Zip压缩包解压。 2、修改\bin\startup.bat文件: 在第一行前面加入如下两行: SET JAVA_HOME=JDK目录 SET CATALINA_HOME=前面解压后Tomcat的目录或者%cd% 如果需要使用shutdown.bat关闭服务器的话,也按照上面加入两行。 3、这样,运行startup.bat就可以运行服务器,运行shutdown.bat就可以关闭服务器了。 4、修改\conf\tomcat-users.xml文件: 在标签内加入 这样才可以使用Tomcat的管理界面。 三、将Tomcat加入服务 1、修改bin目录中的service.bat: REM 添加下面的一行 set CATALINA_HOME=%cd% 如果从来没有安装过Tomcat,或者保证Services.msc启动服务管理器检查没有Apache Tomcat 系统服务,到此你就可以转到第二步了。否则继续往下走 REM 按照描述修改下面的几行 set SERVICE_NAME=Tomcat5 REM 上面一行,Tomcat5修改成你需要的服务名,这个将是一后使用net start/stop来操作的服务名称。

如何优化提高tomcat启动速度

如何优化提高tomcat启动速度 在tomcat启动的时候,我们可以做一些优化设置来使得tomcat的启动更快速,下面是一些常见的优化加速启动的方法建议(以tomcat-7.+为例说明)。 1、 Jars包 1.1、将一些不必要的jar包去掉,当tomcat启动加载jar包的时候,会去搜寻每个jar包里的class文件,这些都会耗费一些时间,如果你把不必要的jar 包去掉了,很显然会节省时间。 1.2、你可以将一些与TLD files、注解、网络碎片无关的jar包加入到属性 tomcat.util.scan.DefaultJarScanner.jarsToSkip的值中,这可以在 conf/catalina.properties中进行设置。 2、缓存 你可以在bin/catalina.sh中设置jvm所能使用到的缓存大小,如下:JAVA_OPTS=?-Xms1024m -Xmx1024m? 3、配置文件

Tomcat的配置比如server.xml是xml文件,而xml的解析也是要花时间的,如果我们能将xml配置文件尽可能地弄得简洁一些,比如去掉一些没有用到的节点,这也有助于减少启动的时间,虽然这个节省的时间看来很少。 4、应用程序 4.1、确保你程序在启动的时候没有一些处理很耗时的地方。 4.2、删除掉tomcat自带的目录webapps及下面的所有内容,不然的话每次启动的时候都会加载这些自带的例子。 4.3、修改WEB-INF/web.xml文件,在默认的情况下中的属性metadata-complete的值为false,也就是这样:,这种情况下,tomcat在启动时会去自动扫描是否有注解及网络碎片,如果你不想tomcat这样做,你可以将metadata-complete的值设为true。 5、并行启动多个应用程序 默认情况下,假设在一个tomcat下你有多个应用,那么启动的时候,这些应用程序都是依次启动的,除非所有应用全部启动完毕,tomcat才会启动完成,但从Tomcat 7.0.23+开始,你可以配置多个应用程序并行启动了!你可以通

Tomcat无法启动问题排查

Tomcat无法启动问题排查 于那个环境变量,有帖子说是tomcat5.5与jdk1.6兼容性问题,拷贝一个tcnative-1.dll到tomcat/bin下,但我试了之后没用。 应该是环境问题; 你打开windows的环境变量最后是不是多了个"." PATH中是加了一个.,删除之后可以启动了,但这是为什么呢?加了.之后它会寻找下一级目录的信息, 结果没有, 当然出错了 1原因有可能是JDK1.6和tomcat5.5之间的兼容性问题,解决的办法如下: 将JDK1.6目录下BIN文件夹中的msvcr71.dll复制到tomcat中BIN文件夹中,这样可以成功tomcat。 (1)看log log文件路径%TomcatHOME%\logs (2)看启动时的控制台信息 Windows启动菜单——》执行程序——》cmd ——》cd %TOMCATHOME%\bin ——》Tomcat4的可执行程序名(或者startup.bat) 这样程序执行结束的时候,还是会回到控制带,错误信息都在里面了。 1.如果双击startup.bat,窗口一闪而过,可以在命令行里面启动startup.bat; 2.如果命令行里面启动startup.bat情况还是这样,就可以在bat命令后面加上pause。这样就不会一闪而过了; 后来发现在tomcat目录下有一个setclasspath.bat,在终端里执行,查看JAVA_HOME 相关内容发现,原来在JAVA_HOME=C:\Program Files\Java\jdk1.6.0_03; 而恰恰是这个";"导致tomcat将java.exe的之路径组合成

Tomcat5 windows服务不能启动的终极解决方法

本人多次碰到这个问题,在网上搜索很久,一直没有找到真正的解决方法。今天下午一次偶然的机会发现了问题所在,根据问题,提出以下解决方案。 问题所在: 现在很多人都在使用jdk的压缩版,使得tomcat服务不能正确设置java VM,导致tomcat服务不能正常配置和启动。如果你是安装版jdk也出现启动问题,请参照以下方法解决。 假设 jdk 安装目录为 d:\j2sdk tomcat5 安装目录为 D:\Program Files\Apache Software Foundation\Tomcat 5.0 1. 配置环境变量: JAVA_HOME = d:\j2sdk CLASSPATH = %JAVA_HOME%\bin;.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME %\lib\tools.jar CATALINA_HOME = D:\Program Files\Apache Software Foundation\Tomcat 5.0 2. 配置 Tomcat 服务 这里有两种情况,一是tomcat5为安装版,二是解压版,针对这两种情况分别解决。 (1)安装版 tomcat5 在安装时选择安装tomcat服务,如图

安装完成后,打开注册表regedit.exe, 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters,你可以看到里面有很多参数值,主要是修改Java 项的值为 d:\j2sdk\jre\bin\server\jvm.dll, 修改正确后,你就可以通过开始->程序->Apache Tomcat 5.0->start tomcat启动服务了。若没有若没有此项,可以依照以下方法设置参数。 (2)解压版 tomcat5 这时你要先配置服务所用的参数,启动命令是 tomcat5的bin目录下的tomcatw.exe(后面附上tomcatw.exe命令参数)。 如果不存在HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters,请先创建,这一步是关键。 使用命令tomcatw.exe //ES//Tomcat5打开配置窗口,如下

Tomcat(8005,8080,8009)端口占用问题常见原因及解决方法

在企业版Eclipse中,在已经启动了Tomcat服务器后,准备运行页面或Servlet时,有时会出现这样的关于Tomcat服务器端口占用的问题: “Several ports (8005, 8080, 8009) required by Tomcat v6.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).” 错误信息的大意是说Tomcat运行所需的那三个端口被被的程序占用了。 我个人遇到过的的原因大概有以下几种: 情况一:点击运行的时候没有选中页面或Servlet窗口的标签 情况如下图:

仔细观察可知,左图其实并没有选中要运行的Servlet窗口的标签,因为标签是白色的,此时点击运行按钮的话相当于再启动一个服务器进程,端口当然是被原来那个已经启动的服务器给占了。而右图中Servlet窗口标签是蓝色的,说明已经被选中了,点击绿色的运行按钮后自然就是将这个Servlet装入已经启动的那个服务器运行,所以不会有像刚才那种端口占用的情况。 情况二:在硬盘的两个地方都有Tomcat 下面说说我碰到过的另一种情况,以前在D盘安装过一个Tomcat,后来因为有段时间不怎么用,就忽略了。再后来又开始做练习的时候,在C盘装了另一个Tomcat,并且在Eclipse中配置的时候也是默认选择了C盘的那个Tomcat。悲剧的是,因为原来在D盘的那个Tomcat我设成了开机启动,所以端口一开始就被它占着。因此,在Eclipse中启动Tomcat(C盘那个)时,就出现了端口占用的错误提示。 后来把D盘的Tomcat删除后,在Eclipse中就能正常运行页面了。 情况三:(8005,8080,8009)三个端口中的至少一个被其他程序占用 这种情况很难一下子看出来,不过反正就是要找出到底是哪个程序占用了这几个端口。可以在控制台里用“netstat -abn”命令查看正在运行的程序所占用的端口以及相关信息:

关于tomcat启动端口号被占用问题解决

有时候把在myeclpise项目部署到tomcat中的时候会莫名其妙的发现tomcat 启动不了,换成是myeclpise自带的tomcat启动,还是无法成功启动。看看控制台显示的错误信息,有时候会看到https://www.360docs.net/doc/a116194644.html,.BindException: Address already in use: JVM_Bind:8080 这样的错误,其实这个错误简单的理解就是tomcat的端口号8080被别的进程给占用了(如果你重新设置了tomcat的端口号,这里可能是其他的数字),看到这情况,相信不少的人就很郁闷了。有人说,这还不简单,我关闭myeclipse 不就可以了吗,当然你这种做法有时候有用,但是如果不是 myeclipse的进程占用了tomcat的端口号呢,你再重新打开myeclipse启动tomcat的时候,错误依旧吧。还有人说,我不管哪个进程占用了tomcat的端口,我直接注销下电脑不就行了,但是有时候你电脑上面打开的程序多了,万一有啥重要的东西忘记保存,你把电脑给注销了,岂不是……。其实还是有办法把那占用tomcat端口的进程给揪出来的,办法如下:点击“运行”输入“cmd”并回车,输入“netstat -ano”并回车,你会看到如下的截图 有人会说,这么多,我怎么找出究竟是哪个程序占用了8080的端口呢,如果你有超人的眼力,一眼就你看出占用8080的进程的地方,不过我很少相信有这样的人,这样的密密麻麻的数字跟字母,估计不少人看了头都大了,还要我去找那个8080,其实很简单鼠标右键在TCP ---------这行上面鼠标右键,就可以看到”查找”的选项,点击后输入8080,点击“查找下一个”,就会看到如上图所示的界面。8080所在的那行的进程就是占用8080端口的,记下该行的PID(PID就是各进程的身份标识),示例中的PID为6072,既然我我们已经找到该进程的PID了,接着就是打开任务管理器了CTRL+ALT+delete。就看到如下的画面:

Tomcat的下载、安装与配置

Tomcat的下载、安装与配置 1、安装Tomcat前要先安装JDK 2、下载Tomcat Tomcat官网:https://www.360docs.net/doc/a116194644.html,/

对于Windows操作系统,tomcat提供了两种安装文件,一个文件exe格式,另一个文件为zip格式。exe是可运行的安装程序,读者只需要双击这个文件,即可开始安装Tomcat。在安装过程中,安装程序会自动搜寻JDK和JRE的位置,并把Tomcat服务加入到Windows操作系统的服务中,同时在“开始”→“程序”菜单中加入Tomcat 服务器管理菜单。zip是一个压缩包,只需要把它解压到本地硬盘即可,这种方式既适合Windows系统下的安装,也适用于其他操作系统,例如Linux系统,所以下面主要介绍zip的安装与Tomcat运行环境的设置。 3、ZIP格式Tomcat安装文件的安装及设置 A、Tomcat安装文件的安装及设置 把Tomcat压缩文件apache-tomcat-8.0.3-windows-x64.zip中的内容解压缩到D:\DevTools\apache-tomcat-8.0.3下,然后增加系统变量: 变量名:TOMCAT_HOME;变量值:D:\DevTools\apache-tomcat-8.0.3。然后修改系统变量classpath,添加%TOMCAT_HOME% \lib\servlet-api.jar;同时修改系统变量path,添加%TOMCAT_ HOME%\bin。 B、测试Tomcat 要测试Tomcat服务器是否安装成功,首先要启动Tomcat服务器。在Tomcat安装目录D:\DevTools\apache-tomcat-8.0.3下面有一个bin目录,里面有两个文件:startup.bat和shutdown.bat,分别控制Tomcat的启动和关闭。由于在前一节中已经把该目录加入到系统变量Path中,所以在命令行中直接输入对应的文件名即可实现Tomcat的启动和关闭,而不需要切换目录。在命令行中输入startup.bat,即可启动Tomcat,如 图所示:

虚拟机linux下配置Tomcat并设置开机自启动

虚拟机linux下配置Tomcat并设置开机自启动 一.配置Tomcat服务器 软件准备:下载JDK和Tomcat软件包;本文中下载的JDK版本为:jdk-6u1-linux-i586-rpm.bin;Tomcat 版本为:apache-tomcat-6.0.24.tar.gz; 1.安装JDK的操作步骤如下: 步骤1:在windows系统下下载JDK,并使用SshClient工具软件将jdk-6u1-linux-i586-rpm.bin传到linux下任意目录下,本文中在/opt下建立目录software,将JDK存放在software这个目录下; 步骤2:在终端中转到jdk-6u1-linux-i586-rpm.bin所在目录,本文是/opt/software,输入以下命令:#chmod +755 jdk-6u1-linux-i586-rpm.bin 注释:添加用户权限。 步骤3:执行如下命令: #./jdk-6u1-linux-i586-rpm.bin 注释:生成jdk-6u1-linux-i586.rpm的文件。 步骤4:执行如下命令: #chmod +755 jdk-6u1-linux-i586.rpm 注释:给jdk-6u1-linux-i586.rpm添加执行的权限。 步骤5:执行如下命令: #rpm –ivh jdk-6u1-linux-i586.rpm 注释:安装JDK。 步骤6:当安装界面会出现授权协议,接受,则jdk被默认安装在/usr/java/jdk1.6.0_01。 步骤7:进入/etc目录,使用vi命令编辑profile,并在最后加入如下内容: JA V A_HOME=/usr/java/jdk1.6.0_01 CLASSPATH=$JA V A_HOME/lib:$JA V A_HOME/jre/lib PATH=$PA TH:$JA V A_HOME/bin:$JA V A_HOME/jre/bin export PATH CLASSPATH JA V A_HOME 注释:设置环境变量。 步骤8:输入如下命令: java –version 如果出现jdk的版本为jdk1.6.0_01则表示jdk已成功安装。 步骤9:JDK安装结束。 2.安装Tomcat的操作步骤如下: 步骤1:在windows系统下下载JDK,并使用SshClient工具软件将apache-tomcat-6.0.24.tar.gz传到linux下任意目录下,本文中在/opt下建立目录software,将JDK存放在software这个目录下; 步骤2:进入apache-tomcat-6.0.24.tar.gz所在目录,执行如下命令: #tar -zxvf apache-tomcat-6.0.24.tar.gz 注释:解压apache-tomcat-6.0.24.tar.gz。 步骤3:执行如下命令: #cp -R apache-tomcat-6.0.24 /usr/local/tomcat 注释:拷贝apache-tomcat-6.0.24到/usr/local/下并重命名为tomcat。 步骤4:执行如下命令: #/usr/local/tomcat/bin/startup.sh 注释:启动tomcat,显示如下结果: Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TEMDIR: /usr/local/tomcat/temp Using JA V A_HOME: /usr/java/jdk1.6.0_01 步骤5:Tomcat安装结束。 二.Tomcat设置开机自启动 Tomcat设置开机自启动的步骤如下: 步骤1:执行如下命令: #vi /etc/init.d/tomcat 注释:在/etc/init.d目录下建立tomcat脚本文件,并进行编辑。 步骤2:在tomcat脚本文件中输入如下内容,并命令模式下输入:wq保存:

tomcat常见错误与解决方法

上海纽斯达科技tomcat常见错误与解决方法 上海纽斯达科技有限公司 2014-10-25

文档状态 目的: 在tomcat 服务器出现故障时,能快速定位并解决相关错误。 保密: 本文档仅供内部使用,请勿外传 概述: tomcat 常见错误与问题之解决方法技术指南。 安装环境: 系统环境:redhat enterprise 6.5 64bit 文件状态: 【 】草稿 【 】修改稿 【√】正式发布 文档编号 Nsdkj-779 保 密 等 级 限制 作 者 刘恒亮 最后完成日期 2014-12-25 审 核 人 最后审核日期 2014-12-25 批 准 人 最后批准日期 2014-12-25

注释:Q代表问题,A代表错误解决办法 Q:在以tomcat用户启动tomcat时提示: The JAVA_HOME environment variable is not defined This environment variable is needed to run this program A:没有在在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为:加入如下几行: JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准) export JAVA_HOME CLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/li b/dt.jar export CLASSPATH Q: 在以tomcat用户登录linux系统后,提示: -bash: /home/tomcat/j2sdk1.4.2_08: is a directory -bash:/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.ja r:没有那个文件或目录。 A: 在tomcat的配置文件.bash_profile中JAVA_HOME和CLASSPATH两个变量值的等号“=”后面存在空格,造成路径不能识别。 Q: 在tomcat启动时提示: Error occurred during initialization of VM Could not reserve enough space for object heap A: 在tomcat的bin目录下,catalina.sh文件的tomcat内存参数配置过大,超过机器可用内存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m" Q:信息发布后台管理,点击“网站发布”后,提示: “由于发生I/O错误.原因,发布失败,请联系管理员或稍后再试!” A:在防火墙上做了端口映射,使后台登录端口不是真正的服务器发布端口,修正方法:登 录信息发布后台管理时,使用服务器中原本设置的端口号。 Q:信息发布系统发布的静态页部分字符缺少,不能正常显示。 A:原因:linux企业版的缺省字符集为GB18030,jdk对该字符集的支持出现问题。 解决方法:修改/etc/sysconfig/下的i18n文件,将如下两行: LANG="zh_CN.GB18030" LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" 修改为: LANG="zh_CN.GBK" LANGUAGE="zh_CN.GBK:zh_CN.GB18030:zh_CN.GB2312:zh_CN" Q:如何在Windows下将tomcat装成服务: A: 1. 打开DOS命令窗口 2. 进入tomcat的bin路径下(tomcat的路径不要有中文和空格) 3. 执行service.bat install,注意:中间是空格,没有中横线。服务即安装完成。

Tomcat 部署项目的三种方法

Tomcat 部署项目的三种方法 1、下载Tomcat 服务器 官网下载地址:https://www.360docs.net/doc/a116194644.html,/ 回到顶部 2、启动并部署Tomcat 服务器 ①、解压tomcat 安装包到一个非中文目录下 ②、配置环境变量。JAVA_HOME(指向JDK 安装的根目录) ③、双击apache-tomcat-6.0.16\bin 目录下的startup.bat,启动服务器(如果一闪而过,那就是没有配置JAVA_HOME 的环境变量) ④、在浏览器中输入http://localhost:8080 注意:Tomcat 启动不了的时候注意配置JAVA_HOME:C:\ProgramFiles\Java\jdk1.6.0_43这是安装JDK的根目录 回到顶部 3、Tomcat 的目录结构 4、部署项目的第一种方法(项目直接放入webapps 目录中) 1、将编写并编译好的web项目(注意要是编译好的,如果是eclipse,可以将项目打成war 包放入),放入到webapps 中 2、启动tomcat服务器(双击apache-tomcat-6.0.16\bin 目录下的startup.bat,启动服务器) 3、在浏览器输入:http://localhost:8080/项目名/访问的文件名 5、部署项目的第二种方法(修改conf/server.xml 文件) ①、打开tomcat下conf/server.xml,在 1 path:浏览器访问时的路径名 docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目 reloadble:设定项目有改动时,tomcat是否重新加载该项目 ②、双击startup.bat,启动tomcat 服务器,然后在浏览器输入访问的项目名称路径 注意:如果你配置的path="/xx",那么访问的时候就是这样: 6、部署项目的第三种方法(apache-tomcat-7.0.52\conf\Catalina\localhost ) ①、进入到apache-tomcat-7.0.52\conf\Catalina\localhost 目录,新建一个项目名.xml 文件 ②、在那个新建的xml 文件中,增加下面配置语句(和上面的是一样的,但是不需要path 配置,加上也没什么用)

tomcat启动失败--解决方法

怎么处理Server Tomcat v7.0 Server at localhost failed to start. 处理方式有以下几种: 1、端口被占用。 2、启动时间不够。 3、eclipse引发的问题。 一.端口被占用 这种情况一般都是你的tomcat端口(默认端口8080)被占用了。你可以通过浏览器访问(http://127.0.0.1:8080)。 若确认是因为端口被占用引起的问题后,我们就来处理该问题了。 一种方法是将被占用的端口的服务停掉,使其不备占用。 二种方法是修改tomcat的端口了,在Eclipse中双击tomcat,修改其端口号。具体如下图所示: 双击它

然后修改它(我这里已经将它修改为了8089了) 2.启动时间不够。 这是由于服务启动的时间相对较长,而设置的timeout时间太短而引起的问题。你只需要将timeout 时间设置长一些就可以正常启动了。 (只需要双击Timeouts就出现如上图界面了,我将原先的45s 改为了50s)我的Exlipse就是因为这个原因。 3. eclipse引发的问题。 如果不属于前面的两种情况,那么可能是eclipse 在管理时出现的问题。 对于这种情况,我们一般通过以下四中方式来解决: 一种:清理tomcat

二种:移除应用并清理tomcat 三种:删除server 并重建(Delete:删除;New 可以重建)

四种:就是重启电脑。 总之,要逐项排查, 对于这个问题:Server Tomcat v7.0 Server at localhost failed to start. 以上方法希望对你帮助!!!!!

Tomcat5 windows服务不能启动的终极解决方法

Tomcat5 windows服务不能启动的终极解决方法

本人多次碰到这个问题,在网上搜索很久,一直没有找到真正的解决方法。今天下午一次偶然的机会发现了问题所在,根据问题,提出以下解决方案。 问题所在: 现在很多人都在使用jdk的压缩版,使得tomcat服务不能正确设置java VM,导致tomcat服务不能正常配置和启动。如果你是安装版jdk也出现启动问题,请参照以下方法解决。 假设 jdk 安装目录为 d:\j2sdk tomcat5 安装目录为 D:\Program Files\Apache Software Foundation\Tomcat 5.0 1. 配置环境变量: JAVA_HOME = d:\j2sdk CLASSPATH = %JAVA_HOME%\bin;.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOM E%\lib\tools.jar CATALINA_HOME = D:\Program Files\Apache Software Foundation\Tomcat 5.0 2. 配置 Tomcat 服务 这里有两种情况,一是tomcat5为安装版,二是解压版,针对这两种情况分别解决。 (1)安装版 tomcat5 在安装时选择安装tomcat服务,如图

安装完成后,打开注册表regedit.exe, 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters,你可以看到里面有很多参数值,主要是修改Java 项的值为 d:\j2sdk\jre\bin\server\jvm.dll, 修改正确后,你就可以通过开始->程序->Apache Tomcat 5.0->start tomcat启动服务了。若没有若没有此项,可以依照以下方法设置参数。 (2)解压版 tomcat5 这时你要先配置服务所用的参数,启动命令是 tomcat5的bin目录下的tomcatw.exe(后面附上tomcatw.exe命令参数)。 如果不存在HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters,请先创建,这一步是关键。 使用命令tomcatw.exe //ES//Tomcat5打开配置窗口,如下

相关文档
最新文档