List of usage examples for org.apache.http.nio NHttpServerConnection getSocketTimeout
int getSocketTimeout();
From source file:org.opcfoundation.ua.transport.https.HttpsServerPendingRequest.java
void sendResponse(int statusCode, IEncodeable responseObject) { try {/*from w w w . j a va2s . c o m*/ HttpResponse responseHandle = httpExchange.getResponse(); responseHandle.setHeader("Content-Type", "application/octet-stream"); responseHandle.setStatusCode(statusCode); if (responseObject != null) { try { logger.trace("sendResponse: requestId={} statusCode={} responseObject={}", requestId, statusCode, responseObject); logger.debug("sendResponse: requestId={} statusCode={} responseObject={}", requestId, statusCode, responseObject.getClass().getSimpleName()); //Check isDebugEnabled() here for possible performance reasons. if (logger.isDebugEnabled() && channel.getConnection() != null) { NHttpServerConnection nHttpServerConnection = ((HttpsServerConnection) channel .getConnection()).getNHttpServerConnection(); logger.debug("sendResponse: timeout={} {} context={}", httpExchange.getTimeout(), nHttpServerConnection.getSocketTimeout(), nHttpServerConnection.getContext()); } EncoderCalc calc = new EncoderCalc(); calc.setEncoderContext(endpoint.getEncoderContext()); calc.putMessage(responseObject); int len = calc.getLength(); byte[] data = new byte[len]; BinaryEncoder enc = new BinaryEncoder(data); enc.setEncoderContext(endpoint.getEncoderContext()); enc.setEncoderMode(EncoderMode.NonStrict); enc.putMessage(responseObject); responseHandle.setEntity(new NByteArrayEntity(data)); } catch (EncodingException e) { logger.info("sendResponse: Encoding failed", e); // Internal Error if (responseObject instanceof ErrorMessage == false) { responseHandle.setStatusCode(500); } } } logger.debug("sendResponse: {} length={}", responseHandle, responseHandle.getEntity().getContentLength()); httpExchange.submitResponse(new BasicAsyncResponseProducer(responseHandle)); } finally { endpoint.pendingRequests.remove(requestId); } }