Performance is not really about numbers of users, your 500, rather it is about load, usually measured in transactions per second.
For anything serious, get a serious server. I just took delivery of one that cost about $6000.
It has two dual core Operton processors (four real CPUs) and 12 GB of ram, dual hardware RAID controllers and six fast disk drives. It has four GigE network cards.
Obviously this has to run a 64 bit operating system, I'll be running Ubuntu.
To get this to work, you need to make sure your JVM properly handles multiprocessor systems. There is no point in having four real CPUs if the JVM puts all the work on a single CPU.
If you are using a typical setup, with Apache as the front end, Tomcat as the Java container, and a database on the back end (say MySql), then you can at least use three CPUs, one for Apache's tasks, Tomcat, and MySql will use one or two more.
You might also look at Caucho's Resin instead of Tomcat, which claims to be faster in many setups.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com