Tomcat--各个目录详解(二)

Tomcat整体目录:

一、bin文件(存放启动和关闭tomcat脚本)

其中.bat和.sh文件很多都是成对出现的,作用是一样的,一个是Windows的,一个是Linux。

① startup文件:主要是检查catalina.bat/sh 执行所需环境,并调用catalina.bat 批处理文件。启动tomcat。

  异常:打开可能有闪退的问题。原因可能有以下两点:

    1)缺少环境变量配置,startup会检查你的电脑环境变量是否有JAVA_HOME。

    2)已经开启了Tomcat容器,再次开启端口号会被占用。

      java.net.BindException: Address already in use: JVM_Bind

② catalina文件:真正启动Tomcat文件,可以在里面设置jvm参数。

  异常:可能出现内存溢出错误可以考虑修改它

    1)java.lang.OutOfMemoryError: Java heap space

      Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,从而导致客户端显示500错误。

        Windows环境下修改catalina.bat文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m

      Linux环境下修改catalina.sh文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’ 

      其中,-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。

    2) java.lang.OutOfMemoryError: PermGen space

      PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM

      存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的

      Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用

      中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的

      时候。如果你的WEB APP下用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了

     解决方法:

      在catalina.bat的第一行增加:(Windows)
      set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -
      XX:MaxPermSize=256m
      在catalina.sh的第一行增加:(Linux)
      JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -
      XX:MaxPermSize=256m

③ shutdown文件:关闭Tomcat

④ Tomcat8文件:相当于控制台直接输入startup

④ Tomcat8w文件:图像化控制Tomcat

  

如果想启动Tomcat,就点击Start。终止就点击Stop。

  异常:点击Tomcat8和Tomcat8w的时候出现错误

  解决:在命令行执行 service.bat install(必须在bin文件目录下执行),再点击就OK了。

二、conf文件(存放tomcat的配置文件)

① Catalina文件:用于存储自定义部署Web应用的路径(上一节详细阐述到了,如何部署)

② server.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3   <!-- Server代表一个 Tomcat 实例。可以包含一个或多个 Services,其中每个Service都有自己的Engines和Connectors。
 4        port="8005"指定一个端口,这个端口负责监听关闭tomcat的请求
 5   -->
 6   <Server port="8005" shutdown="SHUTDOWN">
 7     <!-- 监听器 -->
 8     <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 9     <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
10    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
11    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
12    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
13    <!-- 全局命名资源,定义了UserDatabase的一个JNDI(java命名和目录接口),通过pathname的文件得到一个用户授权的内存数据库 -->
14    <GlobalNamingResources>
15      <Resource name="UserDatabase" auth="Container"
16                type="org.apache.catalina.UserDatabase"
17                description="User database that can be updated and saved"
18                factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
19                pathname="conf/tomcat-users.xml" />
20    </GlobalNamingResources>
21    <!-- Service它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素 -->
22    <Service name="Catalina">
23      <!--
24          每个Service可以有一个或多个连接器<Connector>元素,
25          第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定
26          义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.
27      -->
28      <Connector port="8080" protocol="HTTP/1.1"
29                 connectionTimeout="20000"
30                 redirectPort="8443" />
31      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
32      <!-- 每个Service只能有一个<Engine>元素 -->
33      <Engine name="Catalina" defaultHost="localhost">
34        <Realm className="org.apache.catalina.realm.LockOutRealm">
35          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
36                 resourceName="UserDatabase"/>
37        </Realm>
38        <!-- 默认host配置,有几个域名就配置几个Host,但是这种只能是同一个端口号 -->
39        <Host name="localhost"  appBase="webapps"
40              unpackWARs="true" autoDeploy="true">
41        <!-- Tomcat的访问日志,默认可以关闭掉它,它会在logs文件里生成localhost_access_log的访问日志 -->
42          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
43                 prefix="localhost_access_log" suffix=".txt"
44                 pattern="%h %l %u %t &quot;%r&quot; %s %b" />
45        </Host>
46        <Host name="www.hzg.com"  appBase="webapps"
47              unpackWARs="true" autoDeploy="true">
48          <Context path="" docBase="/myweb1" />
49          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
50                 prefix="hzg_access_log" suffix=".txt"
51                 pattern="%h %l %u %t &quot;%r&quot; %s %b" />
52        </Host>
53      </Engine>
54    </Service>
55  </Server>

访问http://localhost:8080/aaahttp://www.hzg.com/8080/aaa效果一致。

 tomcat-users.xml:配置Tomcat的server的manager信息

1 <?xml version="1.0" encoding="UTF-8"?>
2 <tomcat-users xmlns="http://tomcat.apache.org/xml"
3               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4               xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
5               version="1.0">
6 <role rolename="manager-gui"/>
7 <user username="manager" password="manager" roles="manager-gui"/>
8 </tomcat-users>

三、lib文件(存放Tomcat运行需要的库文件)

  存放Tomcat运行需要的库文件

四、logs文件(存放Tomcat执行时的LOG文件)

  

1、catalina.日期.log:控制台日志

2、commons-daemon.日期.log:启动、重启和停止对Tomcat的操作日志

3、host-manager.日期.log:Tomcat管理页面中的host-manager的操作日志

4、localhost.日期.log:Web应用的内部程序日志

5、localhost_access_log.日期:用户请求Tomcat的访问日志(这个文件在conf/server.xml里配置)

6、manager.日期.log:Tomcat管理页面中的manager app的操作日志。

五、temp文件(存放Tomcat执行时的临时文件)

  temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)

六、webapps文件(存放Tomcat的应用文件)

  webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。

  当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。

七、work文件(存放Tomcat运行时产生的class文件)

  work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。清空work目录,然后重启tomcat,可以达到清除缓存的作用。

  

-------------------------------------------------------------------------------------------------------------------------

Tomcat--安装与部署(一)

Tomcat--各个目录详解(二)

时间: 2024-10-13 00:08:57

Tomcat--各个目录详解(二)的相关文章

配置Tomcat虚拟目录详解

在tomcat6版本中: 1.[官方文档]本人不推荐. 在tomcat\conf下server.xml中找到 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Hos

文件和目录详解(二)---与进程有关的ID详解

与进程有关的 ID 大概有 6 种左右,如下图所示 ====================================================== 进程实际用户ID:就是创建此进程的用户的 ID: 进程有效用户ID:是进程用来评定对系统资源访问权限的用户 ID: 进程创建新文件的时候新文件的所有者被设置成进程的有效用户. 保存的设置用户ID:就是用来备份进程有效用户 ID 的:(后面的笔记再详细介绍) 通常情况下,进程的实际用户ID和有效用户ID是相同的.但是如果可执行文件的set

Android转载二:工程目录详解

REF:http://blog.csdn.net/dianfusoft/article/details/7422540       可以看出这个工程由src,gen,Android2.3.3 jar包,assets,bin,res,AndroidManifest.xml,proguard.cfg,project.properties这几个文件(夹)组成,具体作用如下所示: 下面分层次详解几个重要的文件(夹) ● src文件夹 展开这个文件夹如下所示 可以看出,这个文件夹主要用来存放源文件 ●ge

高性能Web服务之tomcat基础应用详解(一)

Tomcat概述: Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成.由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范.因为Tomcat 技术先进.性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目

UINavigationController详解二(转)页面切换和SegmentedController

原文出自:http://blog.csdn.net/totogo2010/article/details/7682433,非常感谢. 1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2.为Button 添加点击事件,实现跳转 在RootViewController.xib中和RootViewController.h文件建立连接 在RootViewController.m

Tomcat基础配置详解

Tomcat基础配置详解 组件原理图如下: 任何tomcat实例就是一个server,而一个server内部要想能够解析jsp页面转义编译serlet程序,要靠其引擎来实现 而引擎才是真正意义上执行jsp代码的容器,都是tomcat用类来描述这些组件的 同时,为了接受用户的请求,需要基于connector组件,所谓监听的套接字的程序,能够接手用户的请求,被称为连接器 一个server内部可以完全运行N个引擎,无非就是运行多个虚拟机而已 war包的概念 放在网页目录可以直接访问,而部署的时候可以自

Apache常用目录详解、配置文件详解及优化、配置文件权限详解

Apache常用目录详解 1)? /etc/httpd/conf/httpd.conf???(Apache的主配文件) httpd.conf是Apache的主配文件,整个Apache也不过就是这个配置文件,里面几乎包含了所有的配置.有的distribution都将这个文件拆分成数个小文件分别管理不同的参数.但是主要配置文件还是以这个文件为主.只要找到这个文件名就知道如何设置了.后面会详细解释Apache主配文件的每一行配置 2) /etc/httpd/conf.d/*.conf ?( ?(inc

Go语言的GOPATH与工作目录详解

这篇文章主要介绍了Go语言的GOPATH与工作目录详解,本文详细讲解了GOPATH设置.应用目录结构.编译应用等内容,需要的朋友可以参考下 GOPATH设置 go 命令依赖一个重要的环境变量:$GOPATH1 (注:这个不是Go安装目录.下面以笔者的工作目录为说明,请替换自己机器上的工作目录.) 在类似 Unix 环境大概这样设置: 复制代码 代码如下: export GOPATH=/home/apple/mygo 为了方便,应该把新建以上文件夹,并且把以上一行加入到 .bashrc 或者 .z

Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

[Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.Android 布局学习之——LinearLayout的layout_weight属性   4.Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline    Layout Parameters(布局参数): 在XML文件中,我们经常看到类似与lay