I have the exact same problem, but let me provide more detail.
I have tried this with every version from 3.0.4 to 3.2
I have tested with JDK 1.3 and 1.4
I have tested with internal Tomcat and Jetty and MBean.
The problem seems to be with internal (inside JBoss VM) only. If I run a different web/Servlet server as a client outside of JBoss - it works fine (tested with Resin). With an external app server - I can re-deploy my EJB all day long - and have no problems.
If it is an internal (ie an MBean, Tomcat or Jetty, etc.) then it will deploy fine the first time - but after a hot deploy of the EJB it gives this error.
If I am running multiple internal processes - they all fail with this error. With Tomcat and Jetty I get a few different errors depending on whether I restart them (by re hot-deploying them) or not - but it basically all comes down to the service not being able to see the classes it needs anymore - or incorrectly (I think).
This seems like a bug to me... but if it is - then what why has not anyone else had this problem?
As a second question - I am trying to get a single bean to hot-deploy - is that even possible? I want to just compile an EJB and have it just re-deploy that class. Any ideas?
I have found an answer, and thought I would post it for everyone else who may be looking.
It basically comes down to changing the standardjboss.xml file in the config directory, and adding in a new container-configuration as follows:
<container-configuration extends="Standard Stateless SessionBean">
<container-name>Not Optimized Stateless SessionBean</container-name>
The key here is the "ByValueInvokerInterceptor". I then changed my ejb-jar.xml to use this new configuration and it worked great for my development system. I can hot deploy any of my beans (each bean in it's own JAR with proper support files included) - and it works very well.