I've had pretty good luck setting up openfire which is a java based server. It was fairly easy to configure as I remember and this was on a system I did not have root on and I'm not much of a java guy.
On the other hand we didn't end up using the server very heavily so it wasn't thoroughly tested.