Tomcat读取war包外配置文件

项目部署时,因为开发环境、测试环境、生产环境的配置各不相同,所以不能使用同一套配置文件,因此需要在部署服务时将配置文件放置到一个单独的文件夹中,这样就需要在Tomcat中进行配置

以windows系统启动tomcat为例:

1、修改bin/catalina.bat(linux系统需要修改catalina.sh,修改方式不大一样)

将下方语句:

rem Ensure that any user defined CLASSPATH variables are not used on startup,
rem but allow them to be specified in setenv.bat, in rare case when it is needed.
set CLASSPATH=

修改为:

rem Ensure that any user defined CLASSPATH variables are not used on startup,
rem but allow them to be specified in setenv.bat, in rare case when it is needed.
set CLASSPATH=%CLASSPATH%;C:\javaSoftware\Tomcat-7.0.11\etcconfig;

C:\javaSoftware\Tomcat-7.0.11\etcconfig为外部配置文件存放位置

该方法在我的7.0.11版本不生效

2、修改conf/catalina.properties

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

修改为

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,C:/javaSoftware/Tomcat-7.0.11/etcconfig

本tomcat修改后重启生效

 

参考文档:

https://blog.youkuaiyun.com/wsh_0703/article/details/80348026

### Tomcat部署WAR的工作原理 #### 1. WAR文件结构解析 Web应用程序存档 (WAR) 文件是一种用于分发Java Servlet、JSP页面和其他资源(如图像和静态HTML文件)的标准归档格式。WAR文件本质上是一个ZIP压缩文件,其内部遵循特定目录结构[^1]。 - `WEB-INF/`:此目录含了web应用的核心配置文件以及类库。 - `classes/`: 存放编译后的Java类文件。 - `lib/`: 放置第三方依赖jar。 - `web.xml`: Web应用描述符,定义了Servlet映射等信息。 #### 2. 部署过程概述 当向Tomcat服务器上传并启动一个WAR文件时,会发生如下流程: - **解压**:Tomcat会自动识别`.war`扩展名并将该文件解压到指定的应用程序根目录下。 - **初始化上下文**:创建一个新的ServletContext实例来表示这个新加载的应用程序环境,并读取`web.xml`中的设置以完成必要的初始化工作[^2]。 - **扫描组件**:对于基于Spring框架构建的应用而言,在这一阶段还会执行Bean的发现与注册操作,确保所有的控制器和服务都能被正确注入和调用[^3]。 - **监听器触发**:如果有任何实现了`javax.servlet.ServletContextListener`接口的对象,则会在整个应用生命周期的不同事件发生时收到通知,比如启动完成后或关闭前。 - **容器管理的安全性和事务支持**:如果启用了相应的特性,那么此时也会建立安全策略及事务边界[^4]。 ```xml <!-- Example of web.xml configuration --> <web-app> <!-- Define welcome file list --> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- Other configurations... --> </web-app> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值