Tomcat配置和启动

发布时间:2025-02-13 11:21:37 来源:君肯网

webapps 部署服务用的

startup.bat启动Tomcat的预处理文件(Windows下启动)

startup.sh Tomcat启动文件(Linux下启动)

shutdown.bat Windows

shutdown.sh Linux

conf 下的文件(配置文件)

配置文件:

context.xml 数据源的时候用到

server.xml 端口号 字符集设置

lib

Tomcat运行用的 jar 文件 和 jar包

logs 存储的日志文件(运维管理日志文件)

temp 存储Tomcat运行时的临时文件

webapps web程序的存放位置!!!

work web项目程序运行时的缓存文件

/bin 存放各种平台下用于启动和停止Tomcat的脚本文件

/conf 存放Tomcat服务器的各种配置文件

/lib 存放Tomcat服务器所需的各种jar文件

/logs 存放Tomcat的日志文件

/temp Tomcat运行时用于存放临时文件

/webapps 当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中

/work Tomcat把由JSP生成的Servlet放于此目录下

操作Tomcat注意事项

(1)startup.bat启动后,不许关闭,一定是最小化

(2)启动时,窗口一闪而过

jdk 路径

环境变量path 路径\bin

环境变量 JAVA_HOME :jdk路径

CTRL+C快速停止Tomcat

(3) http://localhost:8080/

访问本机地址 8080是端口号

端口号修改 conf/server.xml

如何在Tomcat中部署静态网站

复制到 webapps 文件夹中

tomcat的线程配置

一、安装JDK和Tomcat

1,安装JDK:直接运行jdk-7-windows-i586.exe可执行程序,默认安装即可。

备注:路径可以其他盘符,不建议路径包含中文名及特殊符号。

2、安装Tomcat:直接解压缩下载文件“apache-tomcat-7.0.33-windows-x86.zip”到C盘下。安装路径建议修改为:c:\tomcat。

备注:如下载的是可执行文件,双击运行,默认安装即可。

二、配置JDK环境变量(在步骤查看如何配置环境变量)

1,新建变量名:JAVA_HOME,变量值:C:\Program Files\Java\jdk1.7.0

2,打开PATH,添加变量值:%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

3,新建变量名:CLASSPATH,变量值:.%JAVA_HOME%\lib\dt.jar%JAVA_HOME%\lib\tools.jar

备注:

1,.表示当前路径,%JAVA_HOME%就是引用前面指定的JAVA_HOME;

2,JAVA_HOME指明JDK安装路径,此路径下包括lib,bin,jre等文件夹,tomcat,eclipse等的运行都需要依靠此变量。

3,PATH使得系统可以在任何路径下识别java命令。

4,CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。

三、测试JDK

在CMD命令下输入javac,java,javadoc命令:出现图示界面,表示安装成功。

四、配置Tomcat环境变量

1,新建变量名:CATALINA_BASE,变量值:C:\tomcat

2,新建变量名:CATALINA_HOME,变量值:C:\tomcat

3,打开PATH,添加变量值:%CATALINA_HOME%\lib%CATALINA_HOME%\bin

五、启动Tomcat服务

方法三种:

1,方法一:直接进入tomcat的bin目录中点击startup.bat启动服务,出现如下对话框,表明服务启动成功,stutdown.bat为关闭服务。

2,方法二:在CMD命令下输入命令:startup,出现如下对话框,表明服务启动成功。

3,方法三:右键点击桌面上的“我的电脑”-&gt“管理”-&gt“服务和应用程序”-&gt“服务”,找到“Apache     Tomcat”服务,右键点击该服务,选择“属性”,将“启动类型”由“手动”改成“自动”。

六、测试Tomcat

打开浏览器,在地址栏中输入http://localhost:8080回车,如果看到Tomcat自带的一个JSP页面,说明你的JDK和Tomcat已搭建成功。

注意事项

1,JAVA_HOME中的路径不能用分号结尾,如C:\Program     Files\Java\jdk1.7.0。

2,CATALINA_BASE,CATALINA_HOME,TOMCAT_HOME中的路径不能以“\”结尾。

3,JAVA_HOME的路径一定不要写成了JRE的路径。

4,在环境变量中修改添加变量时,一定要注意分号、空格,是否有多余的字母。作者就是因为path路径中多了一个字母,怎么都配置不成功。如果配置不成功,一定要反复检查。

以上错误,非常容易出现错误:CATALINA_HOME或是JAVA_HOME没有配置好。如错误提示“The CATALINA_HOME environment variable is not defined correctly”

项目部署方式

Tomcat配置和启动

一、静态部署

1、直接将web项目文件件拷贝到webapps 目录中

Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war  myweb

webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:

&ltHost name=”localhost” appBase=”webapps”

unpackWARs=”true” autoDeploy=”true”

xmlValidation=”false” xmlNamespaceAware=”false”&gt

将appBase修改即可。 

2、在server.xml中指定

在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。

在tomcat中的conf目录中,在server.xml中的,&lthost/&gt节点中添加: 

&ltContext path=”/hello” docBase=”D:\ workspace\hello\WebRoot” debug=”0” privileged=”true”&gt 

&lt/Context&gt

或者

&ltContext path=”/myapp” reloadable=”true” docBase=”D:\myapp” workDir=”D:\myapp\work”/&gt

或者

&ltContext path=”/sms4” docBase=”D:\workspace\sms4\WebRoot”/&gt

说明:

path是虚拟路径;

docBase 是应用程序的物理路径;

workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;

debug 则是设定debug level,  0表示提供最少的信息,9表示提供最多的信息

privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet

reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署

antiResourceLocking和antiJARLocking  热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。

3、创建一个Context文件

在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:

&ltContext path=”/hello” docBase=”E:\workspace\hello\WebRoot” debug=”0” privileged=”true”&gt&lt/Context&gt

tomcat自带例子如下:

&ltContext docBase=”${catalina.home}/server/webapps/host-manager”

privileged=”true” antiResourceLocking=”false” antiJARLocking=”false”&gt

&lt/Context&gt

这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。

4、注意:

删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。

二 动态部署

登陆tomcat管理控制台:http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。

在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。

XML Configration file URL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml文件,内容如下: &ltContext reloadable=”false” /&gt其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。

如果部署.war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择.war文件,然后点击Deploy也可以。

首先,这和tomcat的使用的IO模式有关

关于Java IO模式、以及IO处理的线程模型等基础的通信框架的知识,是Java程序员的重要、必备的内功,具体请参见尼恩编著的《Netty、Zookeeper、Redis高并发实战》一书,这里不做过多的赘述。

其次,也和tomcat的配置参数有关

尤其是以下三个配置项:maxConnections、maxThreads、acceptCount。

Tomcat的maxConnections、maxThreads、acceptCount三大配置,分别表示最大连接数,最大线程数、最大的等待数,可以通过application.yml配置文件来改变这个三个值,一个标准的示例如下:

tomcat中maxConnections、maxThreads、acceptCount的具体含义是什么呢?参考官方文档,对三者的含义说明如下:

官方文档的说明为:当所有的请求处理线程都在使用时,所能接收的连接请求的队列的最大长度。当队列已满时,任何的连接请求都将被拒绝。accept-count的默认值为100。

详细的来说:当调用HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100。如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)。

每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务容器可以同时处理多少个请求。maxThreads默认200,肯定建议增加。但是,增加线程是有成本的,更多的线程,不仅仅会带来更多的线程上下文切换成本,而且意味着带来更多的内存消耗。JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以,更多的线程异味着需要更多的内存。线程数的经验值为:1核2g内存为200,线程数经验值200;4核8g内存,线程数经验值800。

官方文档的说明为:

这个参数是指在同一时间,tomcat能够接受的最大连接数。对于Java的阻塞式BIO,默认值是maxthreads的值;如果在BIO模式使用定制的Executor执行器,默认值将是执行器中maxthreads的值。对于Java 新的NIO模式,maxConnections 默认值是10000。

对于windows上APR/native IO模式,maxConnections默认值为8192,这是出于性能原因,如果配置的值不是1024的倍数,maxConnections 的实际值将减少到1024的最大倍数。

如果设置为-1,则禁用maxconnections功能,表示不限制tomcat容器的连接数。

maxConnections和accept-count的关系为:当连接数达到最大值maxConnections后,系统会继续接收连接,但不会超过acceptCount的值。

用一个形象的比喻,通俗易懂的解释一下tomcat的最大线程数(maxThreads)、最大等待数(acceptCount)和最大连接数(maxConnections)三者之间的关系。

我们可以把tomcat比做一个火锅店,流程是取号、入座、叫服务员,可以做一下三个形象的类比:

(1)acceptCount 最大等待数

可以类比为火锅店的排号处能够容纳排号的最大数量;排号的数量不是无限制的,火锅店的排号到了一定数据量之后,服务往往会说:已经客满。

(2)maxConnections 最大连接数

可以类比为火锅店的大堂的餐桌数量,也就是可以就餐的桌数。如果所有的桌子都已经坐满,则表示餐厅已满,已经达到了服务的数量上线,不能再有顾客进入餐厅了。

(3)maxThreads:最大线程数

可以类比为厨师的个数。每一个厨师,在同一时刻,只能给一张餐桌炒菜,就像极了JVM中的一条线程。

(1)取号:如果maxConnections连接数没有满,就不需要取号,因为还有空余的餐桌,直接被大堂服务员领上餐桌,点菜就餐即可。如果 maxConnections 连接数满了,但是取号人数没有达到 acceptCount,则取号成功。如果取号人数已达到acceptCount,则拿号失败,会得到Tomcat的Connection refused connect 的回复信息。

(2)上桌:如果有餐桌空出来了,表示maxConnections连接数没有满,排队的人,可以进入大堂上桌就餐。

(3)就餐:就餐需要厨师炒菜。厨师的数量,比顾客的数量,肯定会少一些。一个厨师一定需要给多张餐桌炒菜,如果就餐的人越多,厨师也会忙不过来。这时候就可以增加厨师,一增加到上限maxThreads的值,如果还是不够,只能是拖慢每一张餐桌的上菜速度,这种情况,就是大家常见的“上一道菜吃光了,下一道菜还没有上”尴尬场景。

以上就是关于Tomcat配置和启动全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

webapps 部署服务用的 startup.bat启动Tomcat的预处理文件(Windows下启动) startup.sh Tomcat…
查看详情
webapps 部署服务用的 startup.bat启动Tomcat的预处理文件(Windows下启动) startup.sh Tomcat…
查看详情
webapps 部署服务用的 startup.bat启动Tomcat的预处理文件(Windows下启动) startup.sh Tomcat…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载