One of my first tasks since starting at JBoss/Red Hat was to investigate and document container interoperability. What I found is what I expected - various tweaks, settings and library requirements depending on what container is being deployed to. These have more to do with specific server needs rather than anything Seam is requiring (mostly).
Seam was designed to be container agnostic and run on any of the major application servers. Deploying any application to multiple application servers can have its share complications. This is usually due to variations in specification implementation, and special
value add features.
As of Seam 2.0.1.GA there are new reference guide chapters that cover specific servers and what is needed to get a Seam application running.
- IBM Websphere 126.96.36.199 + EJB3 FP [ 2.0.1.GA | 2.1.0.A1 ]
- BEA Weblogic 10.X [ 2.0.1.GA | 2.1.0.A1 ]
- Oracle OC4J 11g [ 2.0.1.GA | 2.1.0.A1 ]
It is not that Seam applications can't be deployed to these servers, its just that the reference guide chapter has not been finished. They either have existing information in the Seam documentation or other blogs, or have just not been written yet. The plan is finish these as time permits.
- Glassfish v2.X
- Tomcat 6.X (with and without JBoss embedded)
- JBoss AS 5.X
All of these chapters follow the same basic format. First they discuss any installation or version requirements. Then modify and deploy the examples/jee5/booking example which uses EJB3 and EJB transactions. Then the examples/JPA example is examined and deployed. This uses POJO's for seam components and JPA for transactions. Then a seam-gen application is created, and modified for the given server.
You can keep up to date with issues related to Seam interoperability through the Seam Jira project.
Let us know if you run into any issues with this and I hope this is helpful.