This seems to be a rather complicated issue that is hard to diagnose, hence the lack of good solutions to the problem.
The work-around that we have found uses the following steps:
(Using JBoss-3.0 packaged with Tomcat 4.0.3 - apologies if this doesn't work for others)
1. Shutdown JBOSS
2. Re-Deploy your .jar, .war, or .ear whatever.
3. Delete the $JBOSS_HOME/catalina/work directory
4. Restart JBOSS.
I've actually added a line to my run.sh script that automatically deletes the catalina/work directory every time JBOSS starts.
I've noticed it other threads that some people with this people are using Struts, as we are.
It's not elegant, but it works.
In my case the problem (bug??) was having the same Struts library in different components (EJB and War).
I solved it by moving the Struts jars to the server/lib directory...
Anybody knows if there's a more elegant workaround?