Я для диплома своего читал Фаулера, потом довольно неплохо я думаю дотнет попинал, прнцпы построения распределенных систем, NHibernate (тогда еще альфа была). Потом, когда все сделал, понял что мои сверстники не сильно парились и принесли свои поделки на 1с, delphi... etc.. некоторые даже не писали программы а просто сделали скриншоты прямо в дизайнере форм Delphi (ну там сетку было видно) :)
Я пока к защите готовился выжрал 7 бутылок коньяка за неделю ).
А начать надо с Hibernate in Action (пиши zven@nm.ru дам или в осле), фаулера (чуток), struts и Core J2ee patterns. Не совсем догоняю как томкат вяжется с J2ee? Там EJB не сделаешь... может просто обойтись POJO + Session per request (hibernate)?
Начать лучше с начала -- с технического задания. Определитесь, будет ли это workflow (фиксированный маршрут для каждого типа документов) или collaboration (свободная маршрутизация). В первом случае Вам придется туго -- формализовать документооборот в наших конторах очень тяжело. Впрочем, если главное -- сдать диплом, то это не очень страшно.