War包部署

Tomcat8篇(war包部署)

一、一個端口號部署多個war包項目

同個端口下的web項目中web.xml的webAppRootKey的值不能重複!!!war包名稱不可重複!!!

二、部署多個端口號項目

要想在 Tomcat 上部署不同端口的項目,其實只需要修改 conf 文件夾的 server.xml 即可。

在 Server 元素下可以看到 Service 子元素,其中 Connector 的 Port 是默認的 8080。接下來只要創建多個 Service 子元素修改其中屬性值不和現有Service節點名稱重複就可以。

  1. Service 標籤 的 name 屬性
  2. Connectorport 屬性,也就是端口號
  3. Enginename 屬性
  4. HostappBase 屬性(war放置的位置)

然後在Tomcat下新建與webapps同級文件夾,命名爲appBase的屬性值,如:webapps2

將war分別放入webapps、webapps2再以管理員身份運行,即可通過Service節點設置的端口號訪問

三、注意項目web.xml中webAppRootKey的設置

------------------------------------------------------------------------------------------------
1、 web.xml配置 
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>
"webapp.root"這個字符串可以隨便寫任何字符串。如果不配置默認值是"webapp.root"。
 
可以用System.getProperty("webapp.root")來動態獲項目的運行路徑。
一般返回結果例如:/usr/local/tomcat6/webapps/項目名

2、解決以下報錯

部署在同一容器中的Web項目,要配置不同的<param-value>,不能重複,否則報類似下面的錯誤:
Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!  
意思是“webapp.root”這個key已經指向了項目1,不可以再指向項目2.

3、加載方式

Spring通過org.springframework.web.util.WebAppRootListener 這個監聽器來運行時的項目路徑。
但是如果在web.xml中已經配置了 org.springframework.web.util.Log4jConfigListener這個監聽器,
則不需要配置WebAppRootListener了。因爲Log4jConfigListener已經包含了WebAppRootListener的功能
一般配置類型下面的例子:

Xml代碼 

<!-- 加載Log4J 配置文件  -->  
<context-param>  
    <param-name>log4jConfigLocation</param-name>  
    <param-value>WEB-INF/conf/log4j.properties</param-value>  
</context-param>     
  
<context-param>  
    <param-name>log4jRefreshInterval</param-name>  
      <param-value>3000</param-value>  
 </context-param>  
  
<listener>  
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
 </listener>  

 

4、在運行時動態的找出項目的路徑

在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}:
 log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log 
就可以在運行時動態的找出項目的路徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章