Hmm, after referring to Ivan's notes I realized that I need to inject WebServiceContext instead of MessageContext, which I retried again but still receiving the injection failure exception as mentioned before. The surprise part is, when I tried the example given by Ivan in his material, it worked great. But in my version, I started accessing the WebServiceContext instead of mere declaration using @Resource.
Start from the example in my study notes that work and modify it step-by-step until your problem appears.
Test after each step. This way you can determine what caused injection of the context to fail.