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配置 

webAppRootKey
webapp.root

"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
 
可以用System.getProperty("webapp.root")来动态获项目的运行路径。
一般返回结果例如:/usr/local/tomcat6/webapps/项目名

2、解决以下报错

部署在同一容器中的Web项目,要配置不同的,不能重复,否则报类似下面的错误:
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代码 

  
  
    log4jConfigLocation  
    WEB-INF/conf/log4j.properties  
     
  
  
    log4jRefreshInterval  
      3000  
   
  
  
    org.springframework.web.util.Log4jConfigListener  
   

 

4、在运行时动态的找出项目的路径

在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}:
 log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log 
就可以在运行时动态的找出项目的路径

你可能感兴趣的:(科普知识)