Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have quite extensive Java experience (many years of Swing, desktop apps, gigantic applets), but have done very little JEE - only one single gig for 9 months, but that was very narrow work where I was basically just implementing business logic (in a highly abstracted internal company IDE) and at most tweaking some JSP pages. Never really picked up the macro flow of the JEE framework in depth.

In the meantime, I've done some very limited maintenance of an ASP.NET MVC app at my previous job (very limited) and am currently playing around with Ruby on Rails at home. I feel like I have the basic gist of web development down, but nothing that I can call solid "industrial strength experience" with any of these frameworks. I'm still a bit in the "cargo cult programming" stage with web development, can't really say that I could plug leaks in the abstractions if they broke, so to speak.

So what I'm wondering is: with this background (extensive Java and a decent grasp of how web frameworks work), is JEE going to be be relatively logical and easy to pick up, or will it be a huge and steep learning curve?

Basically, I'm planning to learn it, and want a preliminary idea about how big an effort it's going to be.

share|improve this question

4 Answers 4

up vote 7 down vote accepted

Right off the bat one important misconception you have is that JEE is somehow synonymous with web. The web technologies are just a portion of JEE technologies.

Web development consists of JSP, Servlets and JSF to name a few.

JEE consists of EJB, RMI, JNDI, JMX topics and queues and many more things that can typically be implemented in a web application, however not exclusively.

Most of your application servers are JEE containers as well as servlet containers and they are not dependent upon each other.

My advice to you is to start learning about servlets, JSP, and then finally JSF web development. Understand client side scripting as well as HTML and CSS and how these typically interact with server side functionality to formulate a web application.

When you feel reasonably comfortable with these concepts then I would delve into the other JEE technologies at your discretion.

share|improve this answer

The evolution of JEE is a proof that core programming skills never expire. Core Java skills will always be important. JEE specs and many other enterprise solutions are moving to annotation models. The principle is to separate the code from configuration.

E.g: Write good core Java code, configure the classes that are to be exposed remotely as session EJBs. Write a good model to represent data, annotate with JPA.

IMVHO, this is the trend, and will continue. My suggestion is to stay focused on learning good programming skills, and you get an opportunity to learn JEE. Until then think that JEE is nothing more than configuration overkill.

share|improve this answer

I'm in the same situation, except a month into it. My project is not using EJBs, but I am learning Struts and Hibernate. It's not terribly difficult to learn, but considerably more painful than Ruby on Rails.

I have a copy of Java Persistence with Hibernate, and it is fine., but not really necessary. The online documentation is excellent. I'm still looking for some support for automatic schema migration ala Active Record, but haven't looked really hard.

I also bought "Struts, The Complete Reference", but haven't gotten deeply into the JSPs yet. Nothing terribly difficult there, but the struts tags are insanely verbose. I'm not a big fan of JSPs. I am planning to migrate to Groovy HTML builder or something similar later this year.

I can't tell you anything about EJB 3; I'm still recovering from the horrors of EJB 2, and have no plans to revisit it.

share|improve this answer

If you have developed with Swing a lot, and plan to start developing web applications, I will definitely recommend to use Apache Wicket.

This is a component based object oriented web application development, which you will love if you are into Java already.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.