public EndpointInfo getEndpointInfo() {
return this.endpointInfo;
}
public void invoke(Request request, Response response) throws Exception {
MessageImpl message = new MessageImpl();
message.setContent(InputStream.class, request.getInputStream());
message.setDestination(this);
message.put(Request.class, request);
message.put(Response.class, response);
final HttpServletRequest servletRequest =
(HttpServletRequest)request.getAttribute(WebServiceContainer.SERVLET_REQUEST);
message.put(MessageContext.SERVLET_REQUEST, servletRequest);
HttpServletResponse servletResponse =
(HttpServletResponse)request.getAttribute(WebServiceContainer.SERVLET_RESPONSE);
message.put(MessageContext.SERVLET_RESPONSE, servletResponse);
ServletContext servletContext =
(ServletContext)request.getAttribute(WebServiceContainer.SERVLET_CONTEXT);
message.put(MessageContext.SERVLET_CONTEXT, servletContext);
if (this.passSecurityContext) {
message.put(SecurityContext.class, new SecurityContext() {
public Principal getUserPrincipal() {
return servletRequest.getUserPrincipal();
}
public boolean isUserInRole(String role) {
return servletRequest.isUserInRole(role);
}
});
}
// this calls copyRequestHeaders()
setHeaders(message);
message.put(Message.HTTP_REQUEST_METHOD, servletRequest.getMethod());
message.put(Message.PATH_INFO, servletRequest.getPathInfo());
message.put(Message.QUERY_STRING, servletRequest.getQueryString());
message.put(Message.CONTENT_TYPE, servletRequest.getContentType());
message.put(Message.ENCODING, getCharacterEncoding(servletRequest.getCharacterEncoding()));
messageObserver.onMessage(message);
}