Use a hardware load balancer or Linux Virtual Server (ipvs kernel module).
I would not recommend mod_jk for load balancing, since it can't check availability of certain application. It only checks availability of whole server. But you can have server running with broken application, which mod_jk can't check.
I wouldn't use Sun Java System Webserver either.
I use Linux Virtual Server with Apache Httpd (for SSL) and glassfish. Glassfish and httpd can be connected by mod_jk (but not load balancing) or via proxying.
[Message sent by forum member 'jarol1' (jarol1)]
http://forums.java.net/jive/thread.jspa?messageID=270702