eclipse 部署struts2 There is no Action mapped for namespace / and action name

 

 前几天用eclipse创建了一个struts2工程,最简单的HelloWorld,用的tomcat插件,如图部署。

eclipse 部署struts2 There is no Action mapped for namespace / and action name_第1张图片

启动tomcat,输入http://localhost:8080/jdp/index.jsp正常打开jsp页面,输入配好的action。http://localhost:8080/jdp/index

却报了

HTTP Status 404 - There is no Action mapped for namespace / and action name index

这个错误以前很了解,就是找不到action,但仔细一看配置都没问题,上网搜索全是什么字母拼错,路径写错。怀疑是类没编译好,又手动编译了下,还是不行,clean了也不行。

在MyEclipse中自动部署到tomcat中struts2正常工作,仔细看了下两个工具用的tomcat是同一个为什么会出现这种问题呢。于是怀疑是eclipse自身问题。

查看MyEclipse自动部署的项目文件结构,WEB-INF下有classes文件夹,有所有的类和xml。eclipse tomcat自动部署并没有把项目拷贝到tomcat webApp文件夹中,而是在server.xml中添加了一句话

<Context path="/jdp" reloadable="true" docBase="E:\develop\JDP1.0\WebContent" workDir="E:\develop\JDP1.0\work" />
原来是和手动部署一个原理,找到 E:\develop\JDP1.0\WebContent下,没classes。
根本没有struts2.xml,为什么jsp可以?因为jsp没涉及java代码,是静态的hello world。
 
解决方案:右击项目properties
eclipse 部署struts2 There is no Action mapped for namespace / and action name_第2张图片
 
设置class路径,这样tomcat插件部署的就能找到类了。
原来用eclipse创建工程时有个选项是填写编译路径的,默认是项目根目录下的build/classes
总结:eclipse classes路径要注意。这样看,编译问题的话,不但struts2影响,涉及java和xml配置的都是应该不行的。

你可能感兴趣的:(eclipse,tomcat,jsp,struts,MyEclipse,action)