A complex system that works is invariably found to have evolved from a simple system that worked...A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.
RE: Nice Java Web App - Struts->Spring->Hibernate
Actually, replace Spring with hand-code and Hibernate with Castor, and that is exactly how the jTOTSP is put together.