JBoss Seam is a web application framework for Java EE 5, developed by JBoss. It uses two proven Java frameworks: EJB3 and JSF,
by using these you can easily access any back-end EJB component from
the front-end by addressing it by its Seam component name. Seam introduces the concept of contexts.
Each seam component
exists within a context. The conversation context for example captures
all actions of a user until he logs out or closes the browser - even
multiple uses of the browser back-button. You can automatically
generate a CRUD (create-read-update-delete) web application from an
existing database using seam-gen, a command line tool. Seam unifies the
component models of JSF and EJB3, eliminating glue code, and letting
the developer think about the business problem. Seam supports two open
source JSF-based AJAX solutions: ICEfaces and Ajax4JSF. These solutions
let you add AJAX capability to your user interface without the need to
remoting layer for EJB3 components. AJAX clients can easily call
server-side components and subscribe to JMS topics, without the need
for an intermediate action layer. Neither of these approaches would
work well, were it not for Seam's built-in concurrency and state
management, which ensures that many concurrent fine-grained,
asynchronous AJAX requests are handled safely and efficiently on the
On August 13, last month, Red Hat released the beta version of its Developer Studio>, an Eclipse-based integrated development environment (IDE) to assist developers migrate to and exploit open source runtimes, frameworks and stacks. Among the benefits of this new IDE are:
- A unified programming model with new tools around
JBoss Seam to build applications in a single, consistent manner.
- An integrated Ajax development environment with JBoss Seam and JBoss Ajax4sf frameworks, JBoss Richfaces components and WYSIWYG tools for creating Ajax-enabled Web pages and interfaces.
The following are what I consider to be the 15 Best JBoss Seam Tutorials and Documentation sites available on the web today. These will help you learn and start using this web application framework from JBoss and Red Hat.
JBoss Seam Tutorial: Part 1
This is a simple step-by-step tutorial by Manuel Palacio. He demonstrates how to develop a web application (an addressbook) using Seam. He teaches some of the main concepts and features of the Seam framework, such as:
- Atomic conversations
- PDF generation
- File upload
- Integration with RichFaces and Ajax4JSF
JBoss Seam Generator and Eclipse IDE Video Tutorial
In this three-part Video Tutorial you'll learn how to install and set up JBoss application server, use Seam Generator to build Web applications in a Rails-like manner, and all that inside standard Eclipse IDE. So it seems like the best of both worlds. View the Video.
Rapid CRUD application development with JBoss Seam and MySQL database
Seam is great framework, but issues can emerge if you skip the defaults and create something on your own, such as to plug it into existing environment. When you use the Seam framework with defaults, it allows you to easily and quickly create CRUD applications. This is a very simple tutorial on how to set up your first Seam project with the MySQL server. It uses Ubuntu 7.04 FF with MySQL and Java 6.0 installed from the standard repos.
Seam Tutorial from Redhat
In this tutorial, we'll assume that you are using JBoss AS 4.2 with Seam, as in the case of JBoss Enterprise Application Platform. This Seam tutorial is part of the Seam - Contextual Components Reference Guide, whose detailed links are below. Here is the same Seam tutorial for JBoss AS 4.05.
- 1.1. Try the examples
- 1.2. Your first Seam application: the registration example
- 1.3. Clickable lists in Seam: the messages example
- 1.4. Seam and jBPM: the todo list example
- 1.5. Seam pageflow: the numberguess example
- 1.6. A complete Seam application: the Hotel Booking example
- 1.7. A complete application featuring Seam and jBPM: the DVD Store example
- 1.8. A complete application featuring Seam workspace management: the Issue Tracker example
- 1.9. An example of Seam with Hibernate: the Hibernate Booking example
- 1.10. A RESTful Seam application: the Blog example
These are the four official JBoss Seam Documentation sites:
JBoss Seam API Documentation
Seam JSF Controls 2.0 API
JBoss Seam Documentation
Seam Textual Components Reference Guide
1. Seam Tutorial
2. The contextual component model
3. Configuring Seam components
4. Events, interceptors and exception handling
5. Conversations and workspace management
6. Pageflows and business processes
7. Seam and Object/Relational Mapping
8. JSF form validation in Seam
9. The Seam Application Framework
10. Seam and JBoss Rules
12. Internationalization and themes
13. Seam Text
14. iText PDF generation
16. Asynchronicity and messaging
19. Spring Framework integration
20. Configuring Seam and packaging Seam applications
21. Seam annotations
22. Built-in Seam components
23. Seam JSF controls
24. Expression language enhancements
25. Testing Seam applications
26. Seam tools
Sample Application using JSF, Seam, and Java Persistence APIs on Glassfish
This Sample Store Catalog app demonstrates the usage of JavaServer Faces, a Catalog Stateful Session Bean, the Java Persistence APIs, and Seam to implement pagination of data sets. Carol McDonald took this example Pagination of Data Sets in a Sample Application using JSF, Catalog Facade Stateless Session, and Java Persistence APIs and refactored it to use Seam on Glassfish by following the steps in Brian Leonards blog Seam Refresh and the clickable list example in the Seam Tutorial.
To introduce Seam, Brian Leonard uses the same Registration application that JBoss uses in their Seam tutorial. He takes a different approach, however, in that his version of the Registration application is pure Java EE 5 (no Seam), and then he walk you step-by-step through the changes necessary to configure the application to use the Seam framework. He also uses this approach for a presentation he often gives titled "Refactoring to Seam". You can view a draft of his slides for the upcoming Jazoon conference.
Trying out JBoss Seam
To really help you learn the JBoss Seam framework, including its benefits, Brian Leonard takes you through the steps required to port a standard JSF / EJB 3.0 application to one that uses the Seam framework. To be consistent with JBoss' example, he has rewritten the registration application using standard JSF / EJB 3.0. Now let's port it back.
Seam and SOA
Michael Yuan has been thinking how Seam fits into SOA and learning how to mesh and reuse services already built in single silo applications. With the support for web services in Seam 2.0, it is actually quite easy to fit a Seam application into a SOA environment. In this post, he discusses the work he did with the seambay example (a spoof auction site) to make it share its listings with other services, and receive listings from other services.
JBoss Seam: A Deep Integration Framework
Introduction to JBoss Seam
This article is an introductory article and covers the idea that gave birth to JBoss Seam, its advantages, the various modules involved along with a Sample Application. This article assumes the readers to have some bit of knowledge and programming in areas like Java Server Faces and Enterprise Java Beans 3.0. For more information about these technologies, visit jsf.javabeat.net/index.php and www.javabeat.net/javabeat/ejb3/index.php.
JBoss Seam for J2EE Developers I: What is Seam
Seamless JSF, Part 1: An application framework tailor-made for JSF
Discover Seam's unique enhancements to the JSF life cycle. In this article, the author explains what differentiates Seam from other Web frameworks typically paired with JSF, shows you how easy it is to add Seam to an existing JSF application, and concluds with an overview of Seam's enhancements to the JSF application life cycle, touching on stateful conversations, factory components, and no-fuss configuration using annotations.
Seamless JSF, Part 2: Conversations with Seam
Use Seam to build a stateful CRUD application. Developing a stateful CRUD application is a breeze with Seam on the job. In this second article in his Seamless JSF series, Dan Allen shows you how to use Java Server Faces (JSF) and Seam to develop the create, read, update, and delete use cases for a Web-based golf course directory.
Seamless JSF, Part 3: Ajax for JSF
Seam Remoting and Ajax4jsf seamlessly fuse client and server. In this final article in the Seamless JSF series, Dan Allen shows you how to use the Seam Remoting API and Ajax4jsf components to communicate with managed beans on the server as if they were local to the browser. You'll learn how easy it is to leverage Ajax as a natural improvement on JSF's event-driven architecture and how to do so without compromising the JSF component model.
You can download Seam from SourceForge.net.