Frustrating ClassCastException
I am currently using Tomcat 4.0.1 in a VisualAge 3.5.3 environment with struts 1.0.2. Here is the scenario. I run both struts-example webapp and my application webapp, everything works out fine. JSP's and Java files are created in the work directory in Tomcat and everything is hunky dory. Now I stop Tomcat and bring it backup and then attempt to test the struts-example webapp. It works well. Now when I run my web app, I get a ClassCast Exception. Looks like it is caused by ActionForm. But All my ActionForm's blissfully extend org.apache.struts.action.ActionForm. Everything except struts-config and web.xml is the same in both webapps. What could be wrong? Thanks for your time hemant -- java.lang.ClassCastException java.lang.Throwable() java.lang.Exception() java.lang.RuntimeException() java.lang.ClassCastException() org.apache.struts.action.ActionForm org.apache.struts.action.ActionServlet.processActionForm(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest) org.apache.struts.action.ActionForm org.apache.struts.action.ActionServlet.processActionForm(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest) void org.apache.struts.action.ActionServlet.process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) void org.apache.struts.action.ActionServlet.doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void org.apache.catalina.core.StandardWrapperValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardPipeline.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.ContainerBase.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardContextValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardPipeline.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.ContainerBase.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardContext.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardHostValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.valves.ErrorDispatcherValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.valves.AccessLogValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardPipeline.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.ContainerBase.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.Request, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Request, org.apache.catalina.Response)
RE: Frustrating ClassCastException
Take a look at your jar files, specifically for struts.jar. Make sure it is only available in yourApp/WEB-INF/lib directory and not in you JDK_PATH/jre/lib/ext or TOMCAT_ROOT/lib or TOMCAT_ROOT/commons/lib. Mark. -Original Message- From: hemant [mailto:[EMAIL PROTECTED]] Sent: Wednesday, April 03, 2002 10:29 AM To: struts Subject: Frustrating ClassCastException I am currently using Tomcat 4.0.1 in a VisualAge 3.5.3 environment with struts 1.0.2. Here is the scenario. I run both struts-example webapp and my application webapp, everything works out fine. JSP's and Java files are created in the work directory in Tomcat and everything is hunky dory. Now I stop Tomcat and bring it backup and then attempt to test the struts-example webapp. It works well. Now when I run my web app, I get a ClassCast Exception. Looks like it is caused by ActionForm. But All my ActionForm's blissfully extend org.apache.struts.action.ActionForm. Everything except struts-config and web.xml is the same in both webapps. What could be wrong? Thanks for your time hemant -- java.lang.ClassCastException java.lang.Throwable() java.lang.Exception() java.lang.RuntimeException() java.lang.ClassCastException() org.apache.struts.action.ActionForm org.apache.struts.action.ActionServlet.processActionForm(org.apache.struts.a ction.ActionMapping, javax.servlet.http.HttpServletRequest) org.apache.struts.action.ActionForm org.apache.struts.action.ActionServlet.processActionForm(org.apache.struts.a ction.ActionMapping, javax.servlet.http.HttpServletRequest) void org.apache.struts.action.ActionServlet.process(javax.servlet.http.HttpServle tRequest, javax.servlet.http.HttpServletResponse) void org.apache.struts.action.ActionServlet.doPost(javax.servlet.http.HttpServlet Request, javax.servlet.http.HttpServletResponse) void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest , javax.servlet.http.HttpServletResponse) void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) void org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servl et.ServletRequest, javax.servlet.ServletResponse) void org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.Servl etRequest, javax.servlet.ServletResponse) void org.apache.catalina.core.StandardWrapperValve.invoke(org.apache.catalina.Req uest, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Req uest, org.apache.catalina.Response) void org.apache.catalina.core.StandardPipeline.invoke(org.apache.catalina.Request , org.apache.catalina.Response) void org.apache.catalina.core.ContainerBase.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardContextValve.invoke(org.apache.catalina.Req uest, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Req uest, org.apache.catalina.Response) void org.apache.catalina.core.StandardPipeline.invoke(org.apache.catalina.Request , org.apache.catalina.Response) void org.apache.catalina.core.ContainerBase.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardContext.invoke(org.apache.catalina.Request, org.apache.catalina.Response) void org.apache.catalina.core.StandardHostValve.invoke(org.apache.catalina.Reques t, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Req uest, org.apache.catalina.Response) void org.apache.catalina.valves.ErrorDispatcherValve.invoke(org.apache.catalina.R equest, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Req uest, org.apache.catalina.Response) void org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.Reque st, org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Req uest, org.apache.catalina.Response) void org.apache.catalina.valves.AccessLogValve.invoke(org.apache.catalina.Request , org.apache.catalina.Response, org.apache.catalina.ValveContext) void org.apache.catalina.core.StandardPipeline.invokeNext(org.apache.catalina.Req uest, org.apache.catalina.Response) void org.apache.catalina.core.StandardPipeline.invoke(org.apache.catalina.Request , org.apache.catalina.Response) void org.apache.catalina.core.ContainerBase.invoke