Some other suggestions:
a) Have your downloaded the source code and built the server? Have you looked at any of the source code? Digging through the code is one good way of learning it. Start with a stack trace (either from a real exception or from a debugging exception that you add to your code) and dig thought the code mentioned in the stack trace.
b) Have you tried writing a service? Or an MBean? Or a POJO for the microkernel? Or extending the app server in any way? Usually the process if figuring out how to do that will tell you a lot about how the app server works.
c) Follow the forums and try to research the answers to questions, even about things you don't know anything about. The act of reproducing an issue posted by someone in the forum, and then working through the solution yourself will gain you lots of knowledge. Not only will you then know the cause and fix to the original posters original question, but you will also learn a dozen or so other interesting facts which will help you answer future questions.
(Notice a
pattern here? If I read something, I forget it soon afterwards. But if I do something, I remember it a lot longer.)