我已经在网上看过相关的问题了,实在找不出来了。望各位童鞋帮我看看,谢谢了!!
这是错误信息:
严重: No action instance for path /forward could be created
java.lang.ClassNotFoundException: com.yourcompany.struts.ForwardAction
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
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:280)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
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:879)
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:619)
源代码如下:
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
  <data-sources />
  <form-beans >
   <form-bean name="forwardForm"  type="com.yourcompany.struts.ForwardForm" />
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings >
   <action name="forwardForm" type="com.yourcompany.struts.ForwardAction" validate="false" scope="request" path="/forward" parameter="method"> 
<forward name="fail" path="/fail.jsp" />
<forward name="success" path="/success.jsp" />                  
</action> 
  </action-mappings>
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>
  
  <body>
   <form name="forwardForm" action="<%=basePath%>forward.do?method=aaa" method="post">
     <input name="name" type="text">
     <input type="submit" name="submit" value="提交" >
    </form>
  </body>
</html>fail.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'success.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
   failure
  </body>
</html>success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'success.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
   success
  </body>
</html>ForwardAction.java
package com.yourcompany.struts;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class ForwardAction extends DispatchAction {

public ActionForward aaa(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String name = request.getParameter("name");
if(name=="aa"||"aa".equalsIgnoreCase(name)){
return mapping.findForward("success");
}else{
 return mapping.findForward("fail");
}
 
}
 }
FowardForm.java
package com.yourcompany.struts;import org.apache.struts.action.ActionForm;public class ForwardForm extends ActionForm {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}

}

解决方案 »

  1.   

    你把那个<forward name="success" path="/success.jsp" /> 
     <forward></forward> 改改看成吗?
      

  2.   


    No action instance for path /forward could be created
    java.lang.ClassNotFoundException: com.yourcompany.struts.ForwardAction楼主悲剧了呀,,,,你的 Action他没找着。
      

  3.   

    类都没找到,看看有没有编译到classes下面。
      

  4.   

    你在struts配置文件中,action 多配一个input属性,指向你的index.jsp
      

  5.   

    你怎么可以把action的方法的名字改掉啊。着有不是动态action啊!
      

  6.   

       <form name="forwardForm" action="<%=basePath%>forward.do?method=aaa" method="post">
            <input name="name" type="text">
            <input type="submit" name="submit" value="提交" >
        </form>
    改成forwardForm
      

  7.   

    谢谢大家的热心帮助,一开始还以为是代码上有什么问题,后来才发现原来是classes下没有FormwardAction.class导致的。不过我有个疑惑:我是因为eclipse出了点问题,然后重新在一个盘中解压了个eclipse,workspace的路径换到了其他地方,然后把原来的项目导进去,新的workspace下的这个项目的classes下是有FormwardAction.class的,只是以前的workspace下的这个项目的classes中没有FormwardAction.class了,为什么还是会报错呢?我在以前的workspace下的这个项目的classes中复制了一个FormwardAction.class就解决问题了……
    我还是初学者,其实连java的语法还没学完,只是带我的师傅让我尝试着搭建一下struts框架,做一个登陆这样的例子,所以搞得我云里雾里的……
      

  8.   

    把tomcat下面的一个work目录里的东西删除了,有时候tomcat偶尔会出点小问题,不编译的这种情况我也遇到过那么几次。
      

  9.   

    这个也有可能是eclipse的问题。这些问题不是主要的。
      

  10.   

    <form name="forwardForm" action="<%=basePath%>forward.do?method=aaa" method="post">
    把这个改成
    <form name="forwardForm" action="/forward.do?method=aaa" method="post">
    试试!