You forgot to extend "Action" class in your own action. Here is why you
got a ClassCastException.

<snip>
public class AnzeigenAction  extends Action
{
..
}
</snip>
Ciao
Antonio

Wolfgang Rinnert wrote:

> Hi all,
> I am expanding the Struts Upload example.
> Right now I work on a step to display the data that have been uploaded
to a (server-)local file.
> This step consists of invoking an Action that reads the data into
request scope, and a JSP to display the data.
> When invoking the Action I get an error that I cannot find the cause of.
> I guess that it is something elementary - like a misunderstanding of
struts-config,
> something missing from web.xml, or my Action class missing a crucial
element.
> BTW, web.xml is unchanged from the example.
> Since I cannot find the spot, I am asking for a hint.
> Releases used: Sun Java 1.4.2, Tomcat 4.1.30, Struts 1.2.6
>
> Regards,
> Wolfgang
>
> Details of the Problem
> ================
>
> 1. Error Message I get from Tomcat:
> ----------------------------------
>
> HTTP Status 500 - No action instance for path /anzeigen could be created
>
> type Status report
>
> message No action instance for path /anzeigen could be created
>
> description The server encountered an internal error (No action instance
for path /anzeigen could be created) that prevented it from fulfilling
this request.
>
> Apache Tomcat/4.1.30
>
>
>
> 2. Excerpt from logs/catalina.out:
> ---------------------------------------
>
> 23.03.2005 23:07:04 org.apache.struts.action.RequestProcessor
processActionCreate
> SCHWERWIEGEND: No action instance for path /anzeigen could be created
> java.lang.ClassCastException
>        at
org.apache.struts.action.RequestProcessor.processActionCreate(RequestProce
ssor.java:280)
>        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:21
8)
>        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
>        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:412)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>
>
> 3. struts-config
> ----------------
>
> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";>
>
> <struts-config>
>
>    <form-beans>
>        <form-bean name="uploadForm" type="wr.upload.UploadForm" />
>    </form-beans>
>
>    <global-forwards>
>        <forward name="home" path="/index.jsp" />
>        <forward name="anzeigen" path="/anzeigen.do" />
>        <forward name="success2" path="/success2.jsp" />
>    </global-forwards>
>
>    <action-mappings>
>
>        <action path="/upload"
>            type="wr.upload.UploadAction"
>            name="uploadForm"
>            scope="request"
>            input="/upload.jsp">
>            <forward name="success1" path="/success1.jsp" />
>        </action>
>
>        <action path="/anzeigen"
>            type="wr.upload.AnzeigenAction"
>            scope="request" />
>
>    </action-mappings>
>
>    <controller maxFileSize="2M" />
>
>    <message-resources parameter="resources.application" null="false" />
>
> </struts-config>
>
>
> 4. AnzeigenAction.java
> -----------------------
>
> package wr.upload;
>
> import java.util.Vector;
> import java.util.logging.Logger;
>
> 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;
>
> public class AnzeigenAction
> {
>    private static PropertiesSingleton config;
>    private static Logger logger = LoggerInitiator.getLogger();
>
>    public AnzeigenAction()
>    {
>        logger.info( "AnzeigenAction.java" );
>    }
>              public ActionForward execute( ActionMapping mapping,
>                ActionForm form,
>                HttpServletRequest request,
>                HttpServletResponse response )
>        throws Exception
>    {
>            config = PropertiesSingleton.getInstance();
>        BuchungenLesen bl = new BuchungenLesen();
>        Vector bchListe = bl.readFile( config.getProperty(
"upload.tempfile" ));
>        request.setAttribute( "bchListe", bchListe );
>            return mapping.findForward( "success2" );
>    }
> }
>
>
> 5. index.jsp (this is the caller of URI /anzeigen)
> ------------
> <%@ page language="java" %>
> <%@ page import="wr.upload.*" %>
> <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
> <%@ taglib uri="/tags/struts-html" prefix="html" %>
>
> <html:html locale="true">
>    <head>
>        <title><bean:message key="index.title"/></title>
>    </head>
>    <body>
>        <p>
>            <% PropertiesSingleton ps =
PropertiesSingleton.getInstance();
>            out.println( "Debug-Level " + ps.getProperty( "log.level" ));
%>
>        </p>
>        <h2>
>            <bean:message key="index.title"/>
>        </h2>
>        <h3>
>            <table border="1">
>            <tr><td>
>                <html:link page="/upload.jsp"><bean:message
key="index.upload"/></html:link>
>            </td></tr>
>            <tr><td>
>                <html:link forward="anzeigen"><bean:message
key="index.anzeigen"/></html:link>
>            </td></tr>
>            <tr><td>
>                <html:link page="/laden.jsp"><bean:message
key="index.laden"/></html:link>
>            </td></tr>
>            <tr><td>
>                <html:link page="/logview.jsp"><bean:message
key="index.logfile"/></html:link>
>            </td></tr>
>            </table>
>                </h3>
>        <p>
>            <img border="0" align="right" alt="Logo"
src="images/struts-power.gif" />
>            <bean:message key="general.copyright"/>
>        </p>
>    </body>
> </html:html>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to