To me, it's actually quite a big challenge to learn Java since there are so many frameworks out and it's almost impossible to master all. So, I always pick which one is more suitable for me and I have a tendency to stick to the latest Java EE standard, e.g.
- Web:
JSF -
EJB: EJB 3
- ORM: EJB 3 JPA
- Web Services: JAX-WS
If I have more time, I will learn other things, such as Struts or Spring.
Here are the books that I use to learn those technologies.
1. JSF --> JavaServer Faces in Action
2. EJB3 --> Pro EJB 3 Java Persistence API and Enterprise JavaBeans 3.0
3. JAX-WS --> SOA Using Java Web Services