As you all know, every bean class must declare at least one ejbCreate() method (unless it's a stateful session bean whose home interface has no create() method).
You must declare this according to some rules. As an example, this is what you must do for message-driven beans.
The method name must be ejbCreate.
The method must be declared as public.
The method must not be declared as final or static.
The return type must be void.
The method must have no arguments.
The throws clause must not define any application exceptions.
It's almost as if the bean class is implementing a hidden interface which has this method declared:
public void ejbCreate() throws EJBException
Is there some good reason ejbCreate() is not declared in javax.ejb.MessageDrivenBean?