当项目以war的形式放在tomcat的webapps下tomcat可以正常访问 但是访问项目404

本文详细介绍了在Linux环境下如何配置多个Tomcat实例,包括设置独立的CATALINA_BASE和CATALINA_HOME环境变量、修改catalina.sh文件及server.xml中的端口配置,确保各实例互不干扰。

出现这种问题的情况下先看一下服务器上是否有多个tomcat 当出现这种情况下 需要对每一个tomcat 进行单独配置。

1.需要针对每个tomcat都单独配置CATALINA_BASE和CATALINA_HOME这两个环境变量。

2.在每个 tomcat 的bin文件夹下catalina.sh进行配置自己对应的CATALINA_BASE和CATALINA_HOME

以linux服务器为例(和windows不同的是环境变量的配置方式不同)如下:

1.编写 /etc/profile 增加

CATALINA_2_BASE=/home/tomcat-9.1  #前面的名字也可以自定义  需要和后面的对应起来  后面就是tomcat的路径
CATALINA_2_HOME=/home/tomcat-9.1
export  CATALINA_2_BASE CATALINA_2_HOME
TOMCAT_2_HOME=/home/tomcat-9.1
export TOMCAT_2_HOME

在使用命令,使环境变量立即生效

source /etc/profile

2.在tomcat中修改与前面对应起来。修改bin下的catalina.sh,在# OS specific support. $var must be set to either true or false.下添加如下两行,并且赋予catalina.sh可执行权限。chmod 777 catalina.sh

export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME

3.进行修改conf/server.xml 文件配置tomcat的三个端口,以下端口自定义即可 但是别和之前的tomcat重复。
(1)修改默认8080端口

<Connector port="自定义"
         disableUploadTimeout="true"
         useBodyEncodingForURI="true"
         URIEncoding="UTF-8" />

(2)修改AJP端口

 <Connector port="自定义" protocol="AJP/1.3" redirectPort="8443" />

(3)修改Shutdown远程停服务端口

<Server port="自定义" shutdown="SHUTDOWN">

**最后使用命令进行启动tomcat 并进行校验。如果无法执行的时候需要赋予startup.sh 可执行权限 chmod 777 startup.sh **

#启动命令    进入bin文件夹之后
./startup.sh 

校验,看到tomcat进程即可

ps -ef|grep tomcat
<think>我们需要明确:将war文件放在Tomcatwebapps目录下,启动Tomcat后,Tomcat会自动解压war文件并部署应用。 但是,能否正常访问取决于多个因素。下面将详细解释。</think>### Tomcat部署机制解析 将打好的WAR文件放入Tomcat的`webapps`目录后,**启动Tomcat通常可以自动部署并访问该Web应用**,但需满足以下条件: ```mermaid graph TD A[WAR文件放入webapps] --> B{Tomcat启动} B --> C[自动解压WAR] C --> D[生成同名目录] D --> E[加载web.xml] E --> F[初始化Servlet/Filter] F --> G[应用可访问] ``` ### 完整部署流程 1. **文件放置** - 将WAR文件复制到`$CATALINA_HOME/webapps/`目录 - 示例:`cp target/myapp.war /opt/tomcat/webapps/` 2. **启动Tomcat** ```bash # Linux/Mac $CATALINA_HOME/bin/startup.sh # Windows %CATALINA_HOME%\bin\startup.bat ``` 3. **自动部署过程** - Tomcat检测到新WAR文件后: - 创建同名目录(如`myapp/`) - 解压WAR文件到该目录 - 解析`WEB-INF/web.xml` - 加载Servlet和Filter 4. **访问验证** - 默认访问地址:`http://localhost:8080/myapp/` - 其中`myapp`对应WAR文件名(不含.war后缀) ### 成功访问的关键条件 | 条件 | 检查方式 | 修复方案 | |------|----------|----------| | WAR文件完整 | 检查文件大小 | 重新打 `mvn clean package` | | 端口无冲突 | `netstat -tuln \| grep 8080` | 修改`server.xml`的`<Connector>` | | 无类冲突 | 查看`catalina.out`日志 | 排除重复依赖 | | 上下文路径正确 | 检查URL路径 | 重命名WAR文件或配置`context.xml` | | 安全策略允许 | 检查`catalina.policy` | 添加权限配置 | ### 常见问题及解决方案 **问题1:404错误** - 原因:上下文路径不匹配 - 解决: ```bash mv webapps/myapp.war webapps/ROOT.war # 设置为根应用 ``` **问题2:启动时报ClassNotFound** - 原因:依赖缺失 - 解决:确保WAR含`WEB-INF/lib/`所有依赖 **问题3:端口被占用** - 解决:修改`conf/server.xml` ```xml <Connector port="9080" protocol="HTTP/1.1" ... /> ``` ### 部署验证命令 ```bash # 查看解压目录 ls /opt/tomcat/webapps/myapp/ # 监控部署日志 tail -f /opt/tomcat/logs/catalina.out # 检查应用列表 curl http://localhost:8080/manager/text/list ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值