I would try to do the following questions:
- Is there a requirement of high performance ?
- what is the infrastructure ? one server? cluster? cloud ?
- do I have limited memory ?
- the application is going to use/manage thousands of records, or millions, or billions?
- how long will it be live ? 5 years, 20 years?
- how large is the application, how many developers will be working on it ?
- Are the developers familiarized with the technology (i.e. framework)?
I think for large applications with several developers working at sametime and that is planned to be live a long period of time, is a big advantage to use the architecture WEB/EJB/JPA , it generates code highly maintainable and very easy to read. But if the application is going to work with several millions of records , probably is better to think in a technology/framework with better performance.