This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Originally posted by John Todd: JEE knowledge isn't a requirement at all, you can build Seam application with only POJOs, no EJB3 at all, you just need to know JSF and Hibernate.
Well, yes and no. Let's put it this way. Seam finds a way that you can use Java EE and you go, "wow, this Java EE stuff isn't that complicated."
Here is what you do need:
You have to use Java 5 to use Seam. This is a no negotiation requirement. Let me give you advice. Use Java 5.
You can deploy to any application server, including a servlet container like Tomcat. In fact, what you use in Seam determines what you can deploy to. If you use JCA, JTA, and EJB 3, then you need to deploy to a Java EE application server. But you can turn all of that off and deploy to tomcat using what are called "local resources". The examples in the Seam distribution show examples of how to deploy to each container (check out the jee and jpa example).
If I'm building my application with only JSF, POJO and Hibernate, why do I need to know about JEE? This way, the only parts of JEE that I need to know about are the web container and JSP (in case I'm not using Facelets). Please correct my if I'm wrong.
Joined: Mar 05, 2003
If I'm building my application with only JSF, POJO and Hibernate, why do I need to know about JEE?
Ah, because our definition of Java EE differs. To me, Java EE is what we all do when we write web applications in Java. It is the complement to Swing and AWT (Java SE). One of the main points I make in the book is that although you may not realize it, you are using Java EE. The Servlet API is part of Java EE. JSF is part of Java EE. Hibernate (if you use it behind JPA) is part of Java EE. JPA is even part of EJB 3, if you can believe it.
Now, if you define Java EE as EJB (which is what most people do), then in that case, you don't have to know Java EE to learn Seam and you don't have to deploy to a Java EE-compliant application server. But that is really a nonsense definition because Java EE is what we are all using. The correct thing to say is that you do not have to learn EJB, JTA or JPA to learn Seam. However, I strongly urge you to use the last two. You should really think about using a Java EE-compliant application server like GlassFish too (GlassFish is a dream come true). Truthfully, I advise against using EJB. You simply don't need it (at least in the beginning).
Now go spread the word. [ August 06, 2008: Message edited by: Dan Allen ]