这样的错误我搜了好多的帖子 一般都是路径与名字不匹配引起的,但是这个工程以前被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)
望大家帮我解释以下是我的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)
下面啊
如果没有,估计是你的myeclipse出了问题
如果还不行的话,你去tomcat目录下面看有没有这个部署的工程
D:\Tomcat 5.5\webapps\web5\WEB-INF\classes
目录下面没有任何class文件 怎么办呢?
就是编译根本不成功,很可能是ide的问题,你可以用其他IDe来编译试试看,或者写一个ant的build.xml来生成war包,直接放到tomcat下至于这个问题
java文件放在 src里面 为什么class文件在WEB-INF\classes
其实你在tomcat里部署的文件根本就是没有src的文件的,全部都是已经编译的class文件,而放在WEB-INF\classes下就是一种规则,它只有这样才能被识别到
不知道说得对不对~~
谢谢各位
谢谢 老紫竹
谢谢 supreme1008
老紫竹的分那么多我就不给你那么多了呵呵
楼下是我从网上搜的这类错误的解决办法
希望对以后的人有帮助
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)