You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Luiz-Otavio Zorzella <z0...@zorzella.com> on 2005/07/01 17:08:06 UTC

Problems with struts on upgrade to Tomcat 5.5

Hi,

I've been using struts for a while, now, and my system is deployed on 
jboss+tomcat. Until version 4.0.1, JBoss came with Tomcat 5.0.x 
embedded, but with 4.0.2, Tomcat was upgraded to 5.5.x, and I started 
having a strange problem. It manifests itself as this exception:

java.lang.ClassCastException: org.apache.struts.validator.BeanValidatorForm

Now, this happens when I typecast the "form" parameter in the "execute" 
method to my own ActionForm bean:

MyActionForm maf = (MyActionForm)form;

BTW,

public class MyActionForm extends AbstractMyActionForm

public abstract class AbstractMyActionForm extends ActionForm

Debugging the code reveals that at the offending line, "form" is of type 
BeanValidatorForm, that has a field "dynaClass" of type "WrapDynaBean", 
that has a field "instance" of type MyActionForm.

Now, my application is packaged as an ear file, which contains an 
ejb-jar and a war, where the Action class exists. On closer inspection, 
I find out that the problem is related to the fact that I package 
AbstractMyActionForm in the ejb-jar. If I change my structure (for 
testing purposes) so that it is packaged in the war instead, the problem 
goes away. Unfortunatelly that is not possible in the real application. 
Note: if I have the class on both ejb-jar and war files, the problem 
still occurs.

I suspect the problem is related to the ClassLoader, but, as the debug 
session shows, the abstract class is eventually found by the classloader 
(since the "instance" variable of WrapDynaBean contains a valid instance 
of the class).

Any hints?

Just to repeat myself: this works fine under JBoss 4.0.1/Tomcat 5.0.x

Zorzella

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org