You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat部署Struts WAR文件后无法访问登录页面求助

解决Struts WAR包部署Tomcat后Action映射404问题

根据你描述的场景,我帮你梳理几个核心排查方向和解决方案,应该能定位到问题:

1. 先修正访问路径(最可能的直接原因)

你已经把应用的Context路径设为/(根路径),所以正确的访问地址应该是http://localhost:8080/login.do,而不是带/iowe的路径。Tomcat会把根路径的应用直接映射到localhost:8080下,再加上/iowe相当于在根应用里找子路径,自然匹配不到对应的Action。

2. 检查Struts.xml的命名空间与Action配置

打开你的struts.xml,确认login Action的命名空间是否和请求匹配:

  • 如果Action的配置是这样(命名空间为/):
    <package name="default" namespace="/" extends="struts-default">
        <action name="login" class="com.yourpackage.LoginAction">
            <!-- 结果配置 -->
        </action>
    </package>
    
    那直接访问http://localhost:8080/login.do是正确的。
  • 如果命名空间设为/iowe,那即使应用是根路径,也需要访问http://localhost:8080/iowe/login.do,但这种情况建议统一调整命名空间为/,避免路径混淆。

3. 确保WAR包内容完整且正确

解压你部署的WAR包,检查以下几点:

  • WEB-INF/classes目录下是否存在struts.xml,以及所有Action类的.class文件是否存在(Eclipse运行正常但打包时可能漏了编译文件)。
  • WEB-INF/lib下是否包含所有Struts相关的依赖jar包,比如struts2-core.jar、xwork-core.jar等,缺少依赖会导致Struts初始化失败,无法加载Action映射。

4. 规范Tomcat的Context配置(避免冲突)

不建议直接修改server.xml的全局配置,容易引发冲突且重启后可能被覆盖,推荐两种更可靠的方式:

  • 方式一:重命名WAR包
    直接把你的WAR包改名为ROOT.war,Tomcat会自动将其部署为根路径应用,不需要任何额外配置。
  • 方式二:使用局部Context配置
    在Tomcat的conf/Catalina/localhost目录下创建ROOT.xml,内容如下(无需指定path,文件名ROOT.xml就对应根路径):
    <Context docBase="iowe" reloadable="true"/>
    
    注意删除server.xml里之前添加的<Context>配置,避免冲突。

5. 检查Struts过滤器的Web.xml配置

确认WEB-INF/web.xml里的Struts过滤器拦截路径是/*,确保所有请求都能被Struts处理:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

6. 查看Tomcat日志定位细节

如果以上步骤都没解决问题,去Tomcat的logs目录查看:

  • localhost.log:查看Struts初始化时是否有报错,比如找不到配置文件、类加载失败等。
  • localhost_access_log.*.txt:确认请求是否真的到达了你的应用,以及请求路径是否正确。

内容的提问来源于stack exchange,提问作者vr3w3c9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:49:59