This vastly depends on your learning speed. What I do in such cases:
- read small parts of tutorials in order to obtain a general idea of the technology
- experiment, and whenever I don't understand something, I return to the tutorial, or google about the problem.
After creating a non-trivial, but still simple application with the technology in question, you can go to the real world. Still, there must be someone more familiar with it, whom you can ask.
For JavaEE I'd suggest the following exercise:
- create a stateless EJB that starts an EJB timer. The timer has to fire on a configurable in the database period of time
- the timer should send messages to a JMS Topic
- the JMS topic should be consumed by a message-driven bean
- the EJB should be called by a servlet, telling it whether to use the db-configured period of time, or use a default one.
- the messages to the JMS topic should consist of the IDs of objects stored in the database
- on receiving the IDs the MDB should increment some number of the object and persist it
- use JPA for persistence.
Here, you'll have servlets, EJBs - stateless and message-driven, timers, JMS and JPA covered.
Refer to the Sun JavaEE tutorial and google anything you don't understand immediately.