1. 程式人生 > >Invalid action class configuration that references an unknown class name [***Action]報錯

Invalid action class configuration that references an unknown class name [***Action]報錯

專案中用Struts2+Spring實現讀取csv和excel檔案的內容儲存到資料庫的功能,在本地eclipse+tomcat執行正常,部署到QA伺服器上報如下錯誤:
java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [**Action]

org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(**ServiceImpl.java:100)
org.apache.struts2.convention.ConventionUnknownHandler.determinePath(ConventionUnknownHandler.java:385)
org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownResult(ConventionUnknownHandler.java:274)
com.opensymphony.xwork2.DefaultUnknownHandlerManager.handleUnknownResult(DefaultUnknownHandlerManager.java:87)
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:226

最後原因:

ivy中新增加的jar包,沒有寫 web-inf-lib,也就是說jar包居然最後打包沒有打進去,坑爹的struts2居然報如上錯誤 原來:

<dependency org="ossjava" name="opencsv" rev="2.3" conf="compile;" /> 修改後:
 <dependency org="ossjava" name="opencsv" rev="2.3" conf="compile; web-inf-lib" />

根據網上查到的結果,進行了如下檢查,都沒有用:

1.檢查struts.xml配置檔案是否正確 

2.首選加上id 來標識這個隱藏域的唯一,這個id不能重複。刪除一些沒有的隱藏域,結果成功的提交到了action 中

3.建議給每個單獨的隱藏域在Action中新增屬性 private String 隱藏域的name 屬性的值 (get set方法不要忘了)

比如:<input type="hidden"  name="tiggerId" value="1" />那麼後臺就新增一個  private String tiggerId; //get set..方法

4.檢查你的Action處理類,看看呼叫時return 的檢視在配置檔案有沒有配置,

有沒有合適的result name,比如:Action處理類中有一個方法return SUCCESS;而在配置檔案中又沒有

<result name="success">***.jsp</result>

5.Action 中有一個Long 型別的屬性,表單get 提交了一個漢字,結果沒有報NumberFomrate異常結果報了java.lang.RuntimeException: Invalid action class configuration that references an unknown class named