While I actually enjoy installing and experimenting with, and eventually using more complex software stacks, the reality of modern post dot-bomb IT development (the most useful features for the smallest development and maintenance costs) continually pushes me towards as much simplicity as possible as seen in this chronology of my favored infrastructure tools:
- Full J2EE stack, usually using Sun's reference implementation, JBoss, and/or Sun ONE
- Using EJBs, but using simple POJO classes with XDoclet tag markup for automated persistence in an EJB container
- Using POJO classes with Prevayler based persistence inside a servlet/JSP container
Complexity is only good when you need it! I am finding the use of Prevayler to be more than fantastic. I am using Plain Old Java Object (POJO) business logic classes that can be written and junit-tested in isolation of any JSP or EJB containers. Then using XML-RPC and/or SOAP based web services interfaces, and JSP based web interfaces, it is easy to expose working functionality as needed by an application.