@Priya: Great that you found the resourcen that help you!
@Liutauras: What I mean, is "learning by playing". Of course, it needs some courage and freedom. But indeed, in our experience it works much better than starting with System.out.println("Hello World!"). This is how we do it:
Let the learner design at least one simple Entity with some fields on the paper.Let she/him input the model into a code generation tool.Run the generated application, discover the code, extend the model, try individual code changes...
It sounds not as straightforward as convential learning. But it stimulates curiosity and joy of discovering. This overweighs the didactical incorrectness of this approach. It really works!
The generated code of a CRUD application with one entity has about 400 lines of real Java code and 300 lines of
JSF. This is an optimal amount to play with it and learning a lot of new things simultaneous. After a certain time, trainees are wholesome Java EE developers, while other just learned plain Java SE.
The most important thing is to believe in it and to create ambient conditions of courage, curiosity and some freedom. Even people new to programming learn very fast. And in a few cases, if this approach does not work, it is not too late to switch back to "Hello World" after one day.
Not to forget: Of course the trainee needs some support by available experts and theoretical backing.