设为首页 收藏本站
查看: 840|回复: 0

[经验分享] 锲而不舍,金石可镂

[复制链接]

尚未签到

发表于 2017-12-25 19:56:29 | 显示全部楼层 |阅读模式
Tomcat整体目录:
   DSC0000.png

一、bin文件(存放启动和关闭tomcat脚本)
   DSC0001.png
  其中.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
DSC0002.png

  如果想启动Tomcat,就点击Start。终止就点击Stop。
  异常:点击Tomcat8和Tomcat8w的时候出现错误
  解决:在命令行执行 service.bat install(必须在bin文件目录下执行),再点击就OK了。

二、conf文件(存放tomcat的配置文件)
   DSC0003.png
  ① 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>
  
9     <Listener>
  
10    <Listener>
  
11    <Listener>
  
12    <Listener>  
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>
  
35          <Realm>  
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>  
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>  
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文件)
   DSC0004.png
  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里配置)
DSC0005.png

  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,可以达到清除缓存的作用。
DSC0006.png

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

Tomcat--安装与部署(一)

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-428010-1-1.html 上篇帖子: Tomcat启动时报错:java.net.UnknownHostException 下篇帖子: Java后端WebSocket的Tomcat实现(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表