In Seam, one of the advantages of using JavaBean Seam components is incremental hot deployment.
Seam goes the extra mile to enable live development by using an isolated development
classloader that supports incremental hot deployment of JavaBean components.
This classloader is used if the following conditions are satisfied:
■ Seam is running in debug mode.
■ jboss-seam-debug.jar is on the runtime classpath.
■ SeamFilter is registered in web.xml.
■ The application is using the WAR archive format.
So are there any other advantages of using a so-called
light-weight container like Tomcat (essentially a servlet container) vs. a full-blown JEE app server like JBoss with ejb container services?
Since 299 is part of (or will be part of?) EE 6, it seems to me that Web Beans is designed to be used with JSF and EJB3 components. But the Web Beans user guide covers Wicket and Tomcat integration as well.
For example, there is the @Transactional annotation in Seam, but is there something equivalent to this in Web Beans? Or is that outside the scope of 299 (JCDI)?
A disadvantage of using Tomcat is there is no distributed tx support (XA/2PC) like you have with JTA/EJB container... And I'm guessing JPA is available outside of an EJB container (e.g.. in a Java SE app), so that shouldn't be a problem.
So what's the official recommendation; EJB container or Tomcat?
All of what you say is correct. Whether you use EE or Tomcat is entirely up to you, and depends on what sort of app you write, and your target deployment environment - use what you say to make a decision.