posted 9 years ago
Containers usually don't return instances of your EJBs to you when you inject them, but proxy objects. That allows the container to add aspects like security and interceptors to it without you having to worry about that in your code. When you call a method, the proxy objects first do their own thing (security, interceptors, etc), then call your implementation, then possibly do some more things. This is the main reason why EJBs can't be final or have final business methods. Usually these proxies are automatically generated classes like the ones you've seen.