首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Struts 1.3 部署報錯「No action instance for path」完整排查清單

     編輯:程式設計綜合問答

錯誤信息


HTTP Status 500 - No action instance for path /userAction could be created

核心原因:Struts 1.x 依賴 JAR 缺失或版本衝突

Struts 1.3 運行時**必需**以下 JAR (放入 `WEB-INF/lib` 或 Tomcat 共享 lib):


antlr-2.7.6.jar
commons-beanutils-1.8.0.jar
commons-chain-1.1.jar
commons-digester-1.8.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
commons-validator-1.3.1.jar
jakarta-oro-2.0.8.jar
struts-core-1.3.10.jar
struts-taglib-1.3.10.jar
struts-tiles-1.3.10.jar
struts-extras-1.3.10.jar (可選)

你的環境問題分析

  • ❌ `lib` 文件夾為空
  • ❌ `struts.jar`、`servlet-api.jar` 放在 `tomcat/lib` — **Struts 1.x 不支持共享類加載器加載**,必須在 `WEB-INF/lib`
  • ❌ `UserAction.java` 放在 `classes/mypack` — **源碼不應部署**,需編譯為 `.class`
  • ❌ `web.xml` 使用舊 DTD 2.2,Servlet 2.4+ 建議用 2.5/3.0/4.0

標準目錄結構


969mall/
├── regist.jsp
├── WEB-INF/
│   ├── web.xml
│   ├── struts-config.xml
│   ├── classes/
│   │   └── mypack/
│   │       └── UserAction.class  ← 編譯後的 class
│   └── lib/
│       ├── struts-core-1.3.10.jar
│       ├── commons-*.jar
│       └── ... (上表所有 JAR)

關鍵配置修正

web.xml (Servlet 3.0 版)




    969mall
    
    
        action
        org.apache.struts.action.ActionServlet
        
            config
            /WEB-INF/struts-config.xml
        
        1
    
    
        action
        *.do
    

struts-config.xml (補全 form-bean)





    
         
        
    
    
        
            
        
    

UserAction.java (編譯後放入 classes/mypack)


package mypack;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class UserAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request, HttpServletResponse response) {
        System.out.println("execute ....");
        return mapping.findForward("regSucceed");
    }
}

驗證步驟

  1. 將所有 JAR 複製到 `WEB-INF/lib`
  2. 刪除 `tomcat/lib` 下的 `struts.jar`、`servlet-api.jar` (避免類加載衝突)
  3. 確保 `UserAction.class` 在 `WEB-INF/classes/mypack/`
  4. 重啟 Tomcat,查看控制台無 `ClassNotFoundException`
  5. 訪問 `https://localhost:8080/969mall/regist.jsp` 提交表單

原回答補充

原最佳回答「檢查 jar 包缺少」方向正確,上文給出**完整必需 JAR 清單、標準目錄結構、修正版 web.xml/struts-config.xml/UserAction.java、驗證步驟**,可直接修復部署。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved