这样的错误我搜了好多的帖子 一般都是路径与名字不匹配引起的,但是这个工程以前被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)

解决方案 »

  1.   

    java.lang.ClassNotFoundException: com.lsf.struts.action.LoginAction 多明显啊,你的这个class不存在,你去WEB-INF/classes下面找找看吧第二个可能,你的server.xml配置错了,不过这个几率很小。
      

  2.   

    老紫竹,你好!我的class文件都放在工程的src目录下  没放在WEB-INF/classes
      

  3.   

    它的意思是你编译后的class文件有没有在WEB-INF/classes
    下面啊
    如果没有,估计是你的myeclipse出了问题
    如果还不行的话,你去tomcat目录下面看有没有这个部署的工程
      

  4.   

    嗯,就是
    D:\Tomcat 5.5\webapps\web5\WEB-INF\classes
    目录下面没有任何class文件  怎么办呢?
      

  5.   

    java文件放在  src里面  为什么class文件在WEB-INF\classes
      

  6.   

    问题明显多了
    就是编译根本不成功,很可能是ide的问题,你可以用其他IDe来编译试试看,或者写一个ant的build.xml来生成war包,直接放到tomcat下至于这个问题
    java文件放在  src里面  为什么class文件在WEB-INF\classes
    其实你在tomcat里部署的文件根本就是没有src的文件的,全部都是已经编译的class文件,而放在WEB-INF\classes下就是一种规则,它只有这样才能被识别到
    不知道说得对不对~~
      

  7.   

    问题解决了各位  我只是没有装jdbc驱动  工程无法编译 classes文件夹下没有包和class文件
    谢谢各位 
    谢谢  老紫竹
    谢谢 supreme1008
    老紫竹的分那么多我就不给你那么多了呵呵
    楼下是我从网上搜的这类错误的解决办法
    希望对以后的人有帮助
      

  8.   

    以下是classes目录下没文件,编译失败的解决办法
    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后没有这个目录,要手工加上有的工程就能自动编译了 文章出处:DIY部落(http://www.diybl.com/course/1_web/webjs/2008410/109723.html)