Yo de todas formas del J2EE recomendaría evitar la parte de EJBs, al menos la de EJB de entidad (Entity Beans) ya que pegará un giro muy brusco con la llegada del nuevo API de persistencia, de momento conocido por muchos como EJB3. A ver si así lo arreglan de una vez
.
Parte de la fama de lento y demás es culpa por usar los EJBs de entidad-CMP no adecuadamente, pero en Java hay multitud de otras opciones como Hibernate, Ibatis, JDBC a pelo (recomendable para aprender lo que hay debajo pero no como para hacer un proyecto grande).
Así que puestos a aprender, yo recomendaría empezar por servlets/JSPs, o Swing según a que se vaya a dedicar uno, JMS, JDBC... y con eso hay de sobra para entretenerse mientras arreglan EJB3. En caso de necesitar persistencia más sofisticada, con Hibernate yo creo que se podrá aguantar y la nueva especificación se parecerá lo bastante como para apostar por ahí.
Y para nada de eso hace falta el JBoss, que yo cuanto más lejos lo tenga mejor
. A veces parece que los mensajes crípticos de error, los innumerables descriptores que si tocas se rompen, los lios de classloader etc... estén hechos así a posta para que no te quede otra que contratarlos como consultores. Pero mejor no pensar mal
, y aun en el caso de querer aprender EJBs hay otras opciones válidas como Jonas, Resin, Geronimo...