@Override public void onSuccess() throws Exception { super.onSuccess(); if (response.chunked) { closeChunked(request, response, ctx, nettyRequest); } else { copyResponse(ctx, request, response, nettyRequest); } if (Logger.isTraceEnabled()) { Logger.trace("execute: end"); } } }
String remoteAddress = getRemoteIPAddress(messageEvent); String method = nettyRequest.getMethod().getName(); port, domain, secure, getHeaders(nettyRequest), getCookies(nettyRequest));
websocketHandshake(ctx, nettyRequest, messageEvent); return; Http.Response.current.set(response); final Request request = parseRequest(ctx, nettyRequest, messageEvent); copyResponse(ctx, request, response, nettyRequest); } else { serve500(ex, ctx, nettyRequest); websocketFrameReceived(ctx, frame);
serve404(new NotFound("The file " + renderStatic.file + " does not exist"), ctx, request, nettyRequest); } else { boolean raw = Play.pluginCollection.serveStatic(file, Request.current(), Response.current()); if (raw) { copyResponse(ctx, request, response, nettyRequest); } else { File localFile = file.getRealFile(); boolean keepAlive = isKeepAlive(nettyRequest); nettyResponse = addEtag(nettyRequest, nettyResponse, localFile); byte[] bytes = errorHtml.getBytes(response.encoding); ChannelBuffer buf = ChannelBuffers.copiedBuffer(bytes); setContentLength(nettyResponse, bytes.length); errorResponse.setContent(buf); ChannelFuture future = ctx.getChannel().write(errorResponse);
addToResponse(response, nettyResponse); boolean keepAlive = isKeepAlive(nettyRequest); if (file != null && file.isFile()) { try { nettyResponse = addEtag(nettyRequest, nettyResponse, file); if (nettyResponse.getStatus().equals(HttpResponseStatus.NOT_MODIFIED)) { writeResponse(ctx, response, nettyResponse, nettyRequest);
public static void serve404(NotFound e, ChannelHandlerContext ctx, Request request, HttpRequest nettyRequest) { if (Logger.isTraceEnabled()) { Logger.trace("serve404: begin"); } HttpResponse nettyResponse = new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND); if (exposePlayServer) { nettyResponse.headers().set(SERVER, signature); } nettyResponse.headers().set(CONTENT_TYPE, "text/html"); Map<String, Object> binding = getBindingForErrors(e, false); String format = Request.current().format; if (format == null) { format = "txt"; } nettyResponse.headers().set(CONTENT_TYPE, (MimeTypes.getContentType("404." + format, "text/plain"))); String errorHtml = TemplateLoader.load("errors/404." + format).render(binding); try { byte[] bytes = errorHtml.getBytes(Response.current().encoding); ChannelBuffer buf = ChannelBuffers.copiedBuffer(bytes); setContentLength(nettyResponse, bytes.length); nettyResponse.setContent(buf); ChannelFuture writeFuture = ctx.getChannel().write(nettyResponse); writeFuture.addListener(ChannelFutureListener.CLOSE); } catch (UnsupportedEncodingException fex) { Logger.error(fex, "(encoding ?)"); } if (Logger.isTraceEnabled()) { Logger.trace("serve404: end"); } }
boolean keepAlive = isKeepAlive(nettyRequest); if (nettyRequest.getMethod().equals(HttpMethod.HEAD)) { content = new byte[0]; Logger.trace("writeResponse: content length [" + response.out.size() + "]"); setContentLength(nettyResponse, response.out.size());
WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(this.getWebSocketLocation(req), null, false); this.handshaker = wsFactory.newHandshaker(req); if (this.handshaker == null) { Http.Request request = parseRequest(ctx, req, messageEvent);
public void writeChunk(Request playRequest, Response playResponse, ChannelHandlerContext ctx, HttpRequest nettyRequest, Object chunk) { try { if (playResponse.direct == null) { playResponse.setHeader("Transfer-Encoding", "chunked"); playResponse.direct = new LazyChunkedInput(); copyResponse(ctx, playRequest, playResponse, nettyRequest); } ((LazyChunkedInput) playResponse.direct).writeChunk(chunk); if (this.pipelines.get("ChunkedWriteHandler") != null) { ((ChunkedWriteHandler) this.pipelines.get("ChunkedWriteHandler")).resumeTransfer(); } if (this.pipelines.get("SslChunkedWriteHandler") != null) { ((ChunkedWriteHandler) this.pipelines.get("SslChunkedWriteHandler")).resumeTransfer(); } } catch (Exception e) { throw new UnexpectedException(e); } }
Map<String, Object> binding = getBindingForErrors(e, true); setContentLength(nettyResponse, bytes.length); nettyResponse.setContent(buf); ChannelFuture writeFuture = ctx.getChannel().write(nettyResponse); byte[] bytes = errorHtml.getBytes(encoding); ChannelBuffer buf = ChannelBuffers.copiedBuffer(bytes); setContentLength(nettyResponse, bytes.length); nettyResponse.setContent(buf); ChannelFuture writeFuture = ctx.getChannel().write(nettyResponse); byte[] bytes = errorHtml.getBytes(encoding); ChannelBuffer buf = ChannelBuffers.copiedBuffer(bytes); setContentLength(nettyResponse, bytes.length); nettyResponse.setContent(buf); ChannelFuture writeFuture = ctx.getChannel().write(nettyResponse);