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--各個目錄詳解(二)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM