The answer is: it depends.
How many active user do you expect to have?
Are you running only one server or a cluster of servers, and if a cluster, how many active users per server?
For each active server, now many objects (and consider the size of the objects) do you expect to have? (For example, if for each user request you load a 10KB XML file into memory using JDOM, or build such an XML file, you are going to need a lot more heap space than if for each user request you just obtain a few data items from a database.)
Have you done any load testing? This is where you run your app simulating 1 user, then 10, then 20, then 50 and so on (using a tool such a JMeter or Load Runner), and each time you examine heap use, memory usage, CPU usage, etc. to find what you code can handle. If you have not done this then you will have no idea what you need when your code goes live.