Hi
I have over 14yrs of experience in app and prod dev. I worked with Fortune-100 companies like HP, Symantec, Veritas etc.
From the requirements, I understand, the app needs to have heavy loads and should be scalable. To support this, the app has to be n-tier, which supports scaling at each tier. I believe, the app's UI will be completed built over AJAX, as HTML5 is front-end. I'll propose the Spring-MVC with RESTful services, instead of Struts2 with Spring Framework as the container. The HTML5 interface communicates with the RESTful services directly. This provides decent scale as presentation is separated from the biz layer.
I don't really recommend JPA except if its compelling reason to go for. From my experience, Hibernate's ORM is much better in terms of performance and features over JPA. JPA's limitations are really painful, except if its a simple project.
I'll suggest Spring Security to secure the endpoints, rather than building custom secure model.
My proposed technology stack: Spring Framework, Spring MVC, Spring Security, Hibernate, Jetty/Tomcat, Apache/Lighthttpd/ngnix. Cluser of tomcat instances if failover is required, which I believe, it is.
I'll follow agile practices which provides regular status of the project at any time.
Regards
Rama Krishna