Forget java EE portal servers. They are so complicated and so
heavy to run. I was traslating eXo portal into Persian. It was horrible.
Instead, try to use pure Java EE and JSP. These are standard, lightweight
and good enough for all size of projects. If you want to use a framework, try
small and fast web frameworks like Struts. It is easy to learn and easy to use.
And remember: Your app should support new technologies like AJAX.
If I was planning new project with Java EE, I will use these:
Pure JSP and Servlet,
Hibernate for persistence layer,
Oracle Express (or SQLExpress) as DBMS,
JBoss App Server,
Eclipse+Ant as IDE,
A good framework for AJAX (I don't have any idea about them)
...
Another important issue:
"Will my app scale when millions of people start using it?
Ya know what? Wait until that actually happens.
If you've got a huge number of people overloading
your system then huzzah! That's one swell problem
to have. The truth is the overwhelming majority of
web apps are never going to reach that stage. And
even if you do start to get overloaded it's usually
not an all-or-nothing issue. You'll have time to adjust
and respond to the problem. Plus, you'll have more
real-world data and benchmarks after you launch
which you can use to figure out the areas that need
to be addressed."