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 

 

猜你喜欢

转载自blog.csdn.net/hanlanshenlan/article/details/80841378