注意: 在webservice中可以获取request和response中的信息, 但是response无法设置http status Code状态码. 可能是webservice响应之前自己组装的http头信息:
方式一:
@Resource
private WebServiceContext context;
....
MessageContext mc = context.getMessageContext();
HttpServletResponse response = (HttpServletResponse) mc.get(MessageContext.SERVLET_RESPONSE);
HttpServletRequest request = (HttpServletRequest) mc.get(MessageContext.SERVLET_REQUEST);
方式二:
WebServiceContext context = new WebServiceContextImpl();
MessageContext cc = context.getMessageContext();
HttpServletResponse response = (HttpServletResponse)cc.get(AbstractHTTPDestination.HTTP_RESPONSE);
response.setStatus(404);
方式三:
Message msg = PhaseInterceptorChain.getCurrentMessage();
HttpServletResponse response = (HttpServletResponse)msg.get(AbstractHTTPDestination.HTTP_RESPONSE);
response.setStatus(400);