public void getWsdl(final HttpRequest request, final HttpResponse response) throws Exception { final URI realLocation = request.getURI(); // log.info("Request at " + realLocation); final String query = realLocation.getQuery(); if (query == null || !query.toLowerCase().startsWith("wsdl")) { throw new IllegalStateException("request must contain a wsdl or WSDL parameter: " + request.getParameters()); } final String locationKey; if (query.length() > 4) { locationKey = query.substring(5); } else { locationKey = wsdlLocation.toString(); } final Object wsdl = wsdlMap.get(locationKey); if (wsdl == null) { throw new IllegalStateException("No wsdl or schema known at location: " + locationKey); } final URI updated = new URI(realLocation.getScheme(), realLocation.getUserInfo(), realLocation.getHost(), realLocation.getPort(), null, //try null for no path null, null); final String replaced = ((String) wsdl).replaceAll(WsConstants.LOCATION_REPLACEMENT_TOKEN, updated.toString()); response.getOutputStream().write(replaced.getBytes()); response.getOutputStream().flush(); }
/** * print a snippet of service info. * * @param response response * @param serviceName Name of the service */ private void printServiceInfo(final HttpResponse response, final String serviceName) throws IOException { response.setContentType("text/html; charset=utf-8"); final StringBuffer output = new StringBuffer("<h1>") .append(serviceName).append("</h1>\n"); output.append("<p>").append(Messages.getMessage("axisService00")) .append("</p>\n"); output.append( "<i>").append( Messages.getMessage("perhaps00")).append( "</i>\n"); response.getOutputStream().write(output.toString().getBytes()); }
if (messageContext.getOperation().getMep() == OperationType.ONE_WAY) { res.setStatus(HttpServletResponse.SC_ACCEPTED); return; } else if (responseMessage == null) { res.setStatus(HttpServletResponse.SC_ACCEPTED); return; final SOAPConstants soapConstants = messageContext.getSOAPConstants(); final String contentType1 = responseMessage.getContentType(soapConstants); res.setContentType(contentType1); res.setHeader(responseMimeHeader.getName(), responseMimeHeader.getValue()); responseMessage.writeTo(res.getOutputStream()); } catch (final Exception e) { logger.warning(Messages.getMessage("exception00"), e);
final String ct = defaultContextTypes.get(ext); if (ct != null) { response.setContentType(ct); } else { final String uct = SystemInstance.get().getProperty("openejb.embedded.http.content-type." + ext); if (uct != null) { response.setContentType(uct);
private Message handleFault(final AxisFault fault, final HttpResponse res, final MessageContext context) { Message responseMessage; final Element runtimeException = fault.lookupFaultDetail(Constants.QNAME_FAULTDETAIL_RUNTIMEEXCEPTION); logger.warning(Messages.getMessage("axisFault00"), fault); if (runtimeException != null) { //strip runtime details fault.removeFaultDetail(Constants.QNAME_FAULTDETAIL_RUNTIMEEXCEPTION); } final int status = fault.getFaultCode().getLocalPart().startsWith("Server.Unauth") ? HttpServletResponse.SC_UNAUTHORIZED : HttpServletResponse.SC_INTERNAL_SERVER_ERROR; if (status == HttpServletResponse.SC_UNAUTHORIZED) { // unauth access results in authentication request // TODO: less generic realm choice? res.setHeader("WWW-Authenticate", "Basic realm=\"AXIS\""); } res.setStatus(status); responseMessage = context.getResponseMessage(); if (responseMessage == null) { responseMessage = new Message(fault); final SOAPPart soapPart = (SOAPPart) responseMessage.getSOAPPart(); soapPart.getMessage().setMessageContext(context); } return responseMessage; }
private Message handleException(final MessageContext context, final HttpResponse res, final Exception e) { Message responseMessage; //other exceptions are internal trouble responseMessage = context.getResponseMessage(); res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); Message responseMsg = responseMessage; logger.warning(Messages.getMessage("exception00"), e); if (responseMsg == null) { final AxisFault fault = AxisFault.makeFault(e); //log the fault final Element runtimeException = fault.lookupFaultDetail(Constants.QNAME_FAULTDETAIL_RUNTIMEEXCEPTION); if (runtimeException != null) { logger.debug(Messages.getMessage("axisFault00"), fault); //strip runtime details fault.removeFaultDetail(Constants.QNAME_FAULTDETAIL_RUNTIMEEXCEPTION); } responseMsg = new Message(fault); } responseMessage = responseMsg; final SOAPPart soapPart = (SOAPPart) responseMessage.getSOAPPart(); soapPart.getMessage().setMessageContext(context); return responseMessage; }
public void onMessage(final HttpRequest request, final HttpResponse response) throws Exception { service.service(request.getInputStream(), response.getOutputStream()); } }
public void onMessage(HttpRequest request, HttpResponse response) throws Exception { service.service(request.getInputStream(), response.getOutputStream()); } }
public void onMessage(HttpRequest request, HttpResponse response) throws Exception { service.service(request.getInputStream(), response.getOutputStream()); } }
private void serveResource(final String key, final HttpResponse response, final URL url) throws IOException { if (cacheResources) { byte[] value = cache.get(key); if (value == null) { final InputStream from = url.openStream(); try { ByteArrayOutputStream to = new ByteArrayOutputStream(); IO.copy(from, to); value = to.toByteArray(); cache.put(key, value); } finally { IO.close(from); } } response.getOutputStream().write(value); } else { final InputStream from = url.openStream(); try { IO.copy(from, response.getOutputStream()); } finally { IO.close(from); } } }