To run servlets (and JSPs, which are compiled into servlets), you need a servlet container. A plain webserver is not enough.
Tomcat is an example of a servlet container.
To run EJBs, you need an EJB container. The EJB container provides the environment in which you can deploy EJBs and controls the lifecycle of the EJBs. Tomcat does not include an EJB container, so you can't run EJBs in Tomcat.
It doesn't have anything to do with the protocols that the server supports.
[ July 19, 2006: Message edited by: Jesper Young ]