您的位置:首页 > 编程语言 > Java开发

错误:No action instance for path /login could be created

2009-08-23 15:26 585 查看
错误:No action instance for path /login could be created
问题:
这样的错误我搜了好多的帖子 一般都是路径与名字不匹配引起的,但是这个工程以前被Myeclipse运行的时候,没出错,今天就出错了 我怀疑是不是IDE不稳定引起的
望大家帮我解释

以下是我的login.jsp
<html:form action="/login" method="post">
name : <html:text property="name"/> <html:errors property="name"/> <br/>
password : <html:password property="password"/> <html:errors property="password"/> <br/>
<html:submit/> <html:reset/>
</html:form>

以下是我的struts-config

<action-mappings >
    <action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      type="com.lsf.struts.action.LoginAction" />
    <action
      attribute="registerForm"
      input="/register.jsp"
      name="registerForm"
      path="/register"
      scope="request"
      type="com.lsf.struts.action.RegisterAction" />
  </action-mappings>

以下是我的LoginAction.java

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws SQLException {
User luser = new User();
DynaActionForm loginForm = (DynaActionForm) form;
// String name=loginForm.get("name");
// String password=loginForm.get("password");
luser.setUserName((String) loginForm.get("name"));
luser.setPassword((String) loginForm.get("password"));
User user = new User();
user = FindUser.findUserByName(luser.getUserName());

if (luser.getUserName().equals(user.getUserName())
&& luser.getPassword().equals(user.getPassword())) {
return mapping.findForward("loginsuccess");
} else {
return mapping.findForward("loginfail");
}

以下是我的错误信息
2009-8-23 10:38:29 org.apache.struts.action.RequestProcessor processActionCreate
严重: No action instance for path /login could be created
java.lang.ClassNotFoundException: com.lsf.struts.action.LoginAction
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:292)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:230)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:566)
 
 
解决途径: 从网上直接搜了No action instance for path /login could be created找到一些解决办法 例如  路径与文件名、类名不同(大小写,缺失字母)
           数据连接池错误
           Struts-config.Xml文件里面配置时候“”内有空格。
但是检查之后没任何错误:
经csdn中发帖,老紫竹提示 classes里面没有相应的类,或者是server.xml文件里面配置有错误(很少见),我检查了布置在tomcat里面的工程,里面却是没有包和class文件,说明编译失败:
从网上搜一些资料之后了解 Eclipse无法编译的解决途径有以下几种
1.确保project->build automatically    已经被选上.

2. 如果选上了,也不好使, 使用这一招: project->clean..->选第2个clean select project, 勾上start build immediatelly

3.删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了

4.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.

5. 想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如Total Commander。此时编译也不会通过,在problems下可能会提示“con''t delete classes ……”。关掉其它程序重新编译即可。

6.还有种情况是remove掉 JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚。

7.把build path中所有包都remove掉。然后又add jars,add libraries把需要的加进去,居然又开始编译了。。。

8.project->properties->java build path->source->.../WEB-INF/src的output folder不要默认,编辑让它指向../WEB-INF/classes
然后重新点击build工程即可自动编译。

9.再就是最重要的要看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了
 
在进行简单的测试后 仍然没有解决问题
 在 老紫竹java群I中  经bryant(358415***)提醒 
在加入jdbc驱动后  问题解决
备注:看来一切问题都是纸老虎,很简单了问题 往往会花费很多时间来解决。但是在解决的过程中学到的东西才扎实。以后遇见问题我不能在想着 先把自己的知识扩充后 再来解决问题,而应该迎难而上,有很多人在帮你,有百度和Google在帮自己,只要自己的水平没有达到顶级,就有办法请教,就有办法解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐