It's duplicate of : https://community.jboss.org/thread/204487
Hi,
You are trying to create/get the MessageContext at the time of initializing the WebService (this is due to @PostConstruct) , which is wrong because At the time of WebService Instantiation it is in illegal state of providing you the MessageContext Once a WebService client invokes a webservice operation then MessageContext can be retrieved.
So remove the @PostConstruct from your init(), Because when your WebService will be constructed at that time it is wrong to expect that your webservice will receive a HttpRequest so you can not get a webservice request for a Non WebService Method.
Also as you have mentioned the init() method as a NON-Web Method by excluding it to appear in the WSDL. Which means any WebService can not send a request to invoke it. So if any client will not be able to invoke your init() then it is totally wrong to expect getting a HttpRequest inside this method.
HttpServletRequest request = (HttpServletRequest) messageContext.get(MessageContext.SERVLET_REQUEST);
Thanks
Jay SenSharma