Você poderia responder a algumas perguntas referentes a seu negócio para ver se tais frameworks lhe serviriam, como por exemplo:
Hibernate + JPA :arrow: Seu sistema basicamente será um CRUD, ou terá regras complexas de consultas e inserções em banco ? O mal uso de JPA e Hibernate para sistemas complexos pode ser um “tiro no pé”, principalmente relacionado ao desempenho do sistema. (Não estou dizendo que não de para utilizar em sistemas complexos, mas na minha opinião tem que conhecer a fundo tais tecnologias)
EJB 3 :arrow: Você vai precisar que suas classes de negócios sejam gerenciadas por um container, com estados transacionais e tudo mais ? Pensando que possa ser um sistema com acessos simultaneos, EJB talvez seria uma boa pedida, mas por que não utilizar Spring, onde vc teria um container de seus Beans e daria para fazer uma inversão de controle legal em seu sistema (Não estou fazendo associação alguma de Spring com EJB).
Struts 2 :arrow: Apesar de recente, ele traz junto maturidades do webwork e do próprio Struts 1, tirando finalmente a necessidade dos ActionForms para validação, é um bom Framework Web, com injeção de depedência, suporte a Ajax, validações e mais n coisas.
Eu recentemente fiz um projeto com Struts 2 + Spring + Hibernate, fico legalzinho, era um CRUD simples, o desempenho do sistema ficou legal, além de estar bem estrurado de acordo com o MVC.
[]'s