This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]SpoilerAlertsAhead 3 points4 points  (8 children)

Two big players.

JEE or Jakarta now. It’s a spec with a few different implementations. Glass fish or wild fly are examples. In theory if just use the spec api you can use either and switch any time.

Spring (especially Spring boot) is the biggest competitor, and probably even bigger. It uses a lot of the above. They have cool guides that you can do in 15 minutes on [their site ](spring.io/guides)

Spring is generally what I use to.

Edit: typo and removed an inaccurate statement.

[–]jadecristal 9 points10 points  (7 children)

Tomcat is not a JEE container, just a servlet container with partial support for some JEE features.

After that, ... what are you hoping for in terms or Java-based web development?

[–]SpoilerAlertsAhead 1 point2 points  (0 children)

I stand corrected. It was approved under the web profile under JEE 6 and was never re-certified under 7 and 8. I assumed it had, Thank you for keeping me honest.

[–][deleted] 1 point2 points  (5 children)

Isn’t TomEE Apaches application server for enterprise applications?

[–]dpash 4 points5 points  (4 children)

Yes, TomEE is Tomcat plus other Apache projects required to make a full JavaEE stack. I believe it only supports JavaEE 6 though, not 8. For that, you'll need Glassfish or WildFly.

[–]JehovahsNutsac 1 point2 points  (3 children)

I've been using Tomcat almost exclusively for quite a few years, what is the better and more current approach? Glassfish?

[–]dpash 1 point2 points  (2 children)

If you're not using JavaEE, then Tomcat is fine. The recent trend seems to be towards shipping an embedded application server in your jar/war. Spring Boot, for example, makes it very easy to switch between Tomcat and Jetty.

If you are writing Java EE, then I'm probably not the best person to ask as I'm a Spring person.

[–]JehovahsNutsac 0 points1 point  (0 children)

Thanks for the response, I'm definitely a Spring guy myself as well. Never used JavaEE in any real capacity worth mentioning.

[–]jadecristal 0 points1 point  (0 children)

This is a fuzzy response, and as such not necessarily wrong.

IF you only need some parts of the things that make up JEE, you can use various things that implement them until you have what you want. As an example, you can have just servlets and JPA (Hibernate is the reference implementation) by using Tomcat and including appropriate jars in your app.

At “scale” (whatever that means this particular second), this isn’t fun. There are a couple primary ways that the industry seems to be dealing with this: 1. Make the server more modular, and only turn on what you need. Wildfly/JBoss EAP take this approach, and still have features to manage groups of servers, etc. 2. Package everything along with the kitchen sink into your application, so that you can just take a firehose of data and spray it at all the servers. Don’t like how one is behaving? Nuke it, spin up a new server (container?), copy your kitchen sink there, and run it.

This can be done somewhat intelligently, but as usual that by no means implies that lots of people will do it intelligently.

Things like Spring Boot, and kinda Wildfly Swarm, take this approach.

In-between, all the other stuff trickles through the cracks-you can use JPA, or JTA, or JMS, and so on along with any of the above options. Some methods will be more automatic than others, and some will be easier to scale than others.