Java beans are reusable components, and there is no strict specification for Java beans, and in theory, any Java class can be a Bean. In general, however, because Java beans are created by containers (such as Tomcat), Java beans should have a parameterless constructor, and in addition, Java beans typically implement the serializable interface to implement Bean persistence. Java beans are actually equivalent to the local in-process COM component in the Microsoft COM model, which cannot be accessed across processes. Enterprise Java beans are equivalent to DCOM, which is distributed components. It is a Java-based remote method invocation (RMI) technology, so EJBS can be accessed remotely (across processes, across computers). However, EJBS must be in containers such as Webspere, WebLogic, and EJB clients never directly access real EJB components, but are accessed through their containers. The EJB container is the proxy for the EJB component, and the EJB component is created and managed by the container. The customer accesses the real EJB component through the container.
The difference between Java Bean and EJB