As I ranted previously, I’m on the lookout for a beginner-friendly Java Web application server. It doesn’t need to do anything fancy like EJB, it just needs to be easy for first-time Java developers to use while they learn Java and deploy their first project or two.
I was about to take Caucho Resin for a spin, but the fact that their trial download expires after 30 days put me off a little. Sure, “students and hobbyists” can write in for a license waiver, but what about professional developers looking to learn a new technology? I suspect they’d grant a waiver in that case as well, but figured I’d start with a server that is clearly free for non-commercial use.
Orion fit the bill nicely. It’s a fully J2EE 1.3 compliant server, which means it supports Enterprise JavaBeans (EJBs), not just JSP/Servlet Web applications, and it’s free to download and use for non-commercial purposes. The Orion site also claims that Orion is “easily the fastest J2EE-based application server”.
Now, I complained that Tomcat wasn’t suitable for beginners because of its twistily organized, and overly technical configuration files and documentation. Orion is definitely better in both those areas: its configuration files are divided more effectively so that basic configuration tasks are quite straightforward. Their documentation is also fairly pleasant to read, although I deduct points for the occasional “under construction” page.
Orion also simplifies the task of bonding to a full-featured Web server like Apache. Instead of relying on server extensions like Tomcat’s JK2 which instruct the Web server to pass requests on to the Java server, Orion receives all the requests itself and passes them on to the Web server for URL patterns you specify. This solution may be a bit wimpy for production sites, but for first timers it’s elegant and effective.
Unfortunately, Orion does fall down in some crucial areas, both for beginners and for experienced developers. For beginners, the full support for J2EE makes things overly complicated when you don’t want to mess with EJBs. You can’t actually deploy a Web application (like the simple one I took you through last week) without first taking the time to learn how to wrap them inside a J2EE application.
For experienced developers who may consider Orion as a production-ready server (who wouldn’t want the “fastest” Java application server?), things are also a little sticky. Orion doesn’t have a native wrapper, nor does it have a Tomcat-like mechanism for hiding inside a native server like Apache. As a result–and someone correct me if I’m wrong, here–you’d need to grant the server full root privileges on a Linux system before it could listen on Port 80. Most server administrators would throw you out of their office for suggesting such a thing.
So yeah. Orion is free, better documented and more capable than Tomcat, but it’s not the beginner’s panacea I’m looking for.
The next stop on my search will either be Caucho Resin or Macromedia JRun. I’ve heard good things about both, but as with Orion they both provide full support for J2EE. Can either of them offer those advanced capabilities while providing beginner-friendly support for JSP/Servlets?