Eclipse Tomcat访问webapps下其他目录失败

eclipse中tomcat默认配置:



后修改为 Deploy path 直接指向tomcat中



为防止项目更新覆盖已经上传的文件, 将上传文件与项目目录平行:



开发中发现上传的图片无法访问, 服务器中图片确实存在, 路径也没有错误;




百思不得姐!! 各种百度, google, 有人说在 tomcat/conf/server.xml 中映射静态路径;



这种方法确实可行, 但有个问题, 项目应该与容器是解耦的, 不应该依赖于容器配置.

于是, 仔细查看tomcat启动日志, 终于发现了一些端倪:



CATALINA_BASE 和 Deploy Path不在同一个容器当中, 找到了问题开始着手修改:

清空容器中的项目, 否则无法修改Server Locations


其次, 修改server path与deploy path匹配上:



修改完成后, Tomcat启动信息如下:



至此, 算是解决了这个问题, 虽然该问题看起来不算太严重, 关键在于解决此类问题的思路! 


根据Eclipse发布结果, 总结下如何配置可以通过网站根路劲访问项目:

第一步, 在 tomcat/conf/server.xml中, <Host>节点中添加 </Context>节点


第二步, 将war包copy到 tomcat/webapps/ 下


第三步, 删除ROOT下无用文件(文件夹), 仅保留web.xml, 内容如下:



虾米?步骤太多,嫌麻烦。出个大招生气 

===> 将war包重命名为 ROOT.war, 丢在 appBase(默认为webapps) 下面即可 

===> 需要注意, js请求路径统一修改未相对域名访问(e.g location.href="/user/center")




### Tomcat Webapps 文件无法访问的原因及解决方案 #### 原因分析 当使用 Docker 部署 Tomcat 容器时,如果发现无法正常访问 `webapps` 中的文件,可能是因为官方镜像中的目录结构存在问题。具体来说,Docker 的 Tomcat 官方镜像中存在两个类似的目录:一个是空的 `webapps` 目录,另一个是包含完整配置和默认应用的 `webapps.dist` 目录[^1]。 这种设计可能导致容器启动后,默认的应用程序未能被正确加载到 `webapps` 目录中,从而引发访问失败的问题。 另外,还可能存在其他原因导致无法访问 `webapps` 中的内容,例如: - **端口冲突**:Tomcat 默认监听的是 8080 端口,但如果宿主机或其他服务占用了该端口,则会导致连接失败[^4]。 - **权限问题**:某些情况下,Tomcat 运行用户对 `webapps` 或其子目录缺乏读取/执行权限。 - **路径错误**:部署的 WAR 包未解压成功或者放置位置正确。 - **网络隔离**:Docker 容器与外部网络之间的通信设置当,也可能影响访问。 --- #### 解决方案 ##### 方法一:调整 `webapps` 和 `webapps.dist` 的关系 可以通过修改目录名称来解决问题。进入容器内部并重命名原有的 `webapps` 目录为其他名字(如 `webapps2`),然后将 `webapps.dist` 复制或移动至原 `webapps` 路径下: ```bash mv /usr/local/tomcat/webapps /usr/local/tomcat/webapps2 cp -r /usr/local/tomcat/webapps.dist /usr/local/tomcat/webapps ``` 完成上述操作后重启容器即可生效[^2]。 ##### 方法二:验证端口号映射是否正确 确认 Docker 启动命令中指定的端口映射无误。例如,确保 `-p 8080:8080` 参数已正确定义。如果没有显式声明此参数,可以尝试重新创建容器实例,并加入如下选项: ```bash docker run -d --name my-tomcat-container -p 8080:8080 tomcat ``` 此外,还需检查是否存在防火墙规则阻止了对外部请求的响应。 ##### 方法三:排查文件权限 登录到目标容器内查看 `/usr/local/tomcat/webapps` 及其子项是否有足够的权限供 Tomcat 使用。必要时可手动赋予适当权限: ```bash chmod -R 755 /usr/local/tomcat/webapps chown -R tomcat:tomcat /usr/local/tomcat/webapps ``` 注意替换实际用户名组名以匹配当前环境需求。 ##### 方法四:调试日志定位异常情况 启用详细的日志记录功能可以帮助快速找到潜在隐患所在之处。编辑 `$CATALINA_HOME/conf/logging.properties` 文件增加更多输出级别详情;随后观察控制台打印消息寻找蛛丝马迹。 --- ### 总结 通过以上几种方式能够有效应对大多数由于配置失误引起的 Tomcat 应用可达状况。其中针对特定版本特性做出相应改动尤为重要——即妥善处理好标准分发版里预设好的两套 webapp 数据集间的关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值