Would you, at present date, use JBoss or Glassfish (or another) as Java EE server for a new project?


Answers

The term "application server" is ambiguous. With GlassFish v3, you can start small with, say, a traditional web container and evolve (using OSGi and simple "add container" functionality) to add anything you'd like : JPA, JAX-RS, EJB's, JTA, JMS, ESB, etc... Yet it's the same product, same admin interface, etc. Does this qualify as an application server to you? -Alexis (Sun)

Question

If you started a new Java EE project today which is to be finished in about a year, which application server would you choose and why?

Part of your answer should include your arguments for your decision. And also how much experience you have with the Java EE server you choose and with the other available servers on the market. These are interesting as we all get a sense of the investigation and thought that was put into your answer.




I still think that WebLogic is the best Java EE app server on the market. I think it's worth it if you can afford those license fees.

I've been surprised to see how far you can go by combining Tomcat, OpenEJB, and ActiveMQ. That would seem to me to be a low-cost alternative.

I'd also look into the Spring dm Server. It's based on Tomcat, but I think the OSGi piece they've added in could be everywhere in short order. If it's done with the same quality as the Spring framework, it'll be very good indeed.




Another point that was not discussed here is performance. If this is a concern because of the type of service or because of the number of users, then the following will be applicable:

  • Tomcat seems to be slower than Glassfish
  • Glassfish seems to be slower than Resin
  • Resin is much slower than G-WAN + Java

Note that G-WAN relies on the JVM alone: it does not use any further containers (unless specified explicitly) so you might reserve it to performance-critical portions of your web applications.

As G-WAN supports other languages (C, C++, C#, D, Objective-C), you may even process some parts of the applications in raw C while keeping Java for other tasks.




I've been using jBoss for 3-4 years.

Arguments for jBoss:

  1. Open source.
  2. Commercial support available.
  3. Large, active user community.

Arguments against jBoss:

  1. No general-access, supported Java EE 5 container release.
  2. Lots of documentation but verbose; can be hard to find the answers to "How do I do x?"
  3. Administrative tools for 4.x poor compared to other commercial offerings.



Links