use of org.apache.hc.core5.http.ExceptionListener in project JAuswertung by dennisfabri.
the class HttpServerPlugin method startUp.
boolean startUp() {
try {
state = true;
final SocketConfig socketConfig = SocketConfig.custom().setSoTimeout(15, TimeUnit.SECONDS).setTcpNoDelay(true).build();
httpServer = ServerBootstrap.bootstrap().setListenerPort(port).setSocketConfig(socketConfig).setExceptionListener(new ExceptionListener() {
@Override
public void onError(final Exception ex) {
ex.printStackTrace();
}
@Override
public void onError(final HttpConnection conn, final Exception ex) {
if (ex instanceof SocketTimeoutException) {
System.err.println("Connection timed out");
} else if (ex instanceof ConnectionClosedException) {
System.err.println(ex.getMessage());
} else {
ex.printStackTrace();
}
}
}).register("*", new DPRequestHandler(getDataProvider())).create();
httpServer.start();
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
httpServer.close(CloseMode.GRACEFUL);
}
});
httpServer.start();
httpOptions.setEnabled(false);
filter.setEnabled(source.getExportMode() == ExportMode.Filtered);
return true;
} catch (Exception e) {
e.printStackTrace();
DialogUtils.wichtigeMeldung(null, I18n.get("HttpServerNotStartet"));
shutDown();
httpServer = null;
state = false;
httpOptions.setEnabled(true);
filter.setEnabled(false);
return false;
}
}
use of org.apache.hc.core5.http.ExceptionListener in project httpcomponents-core by apache.
the class ClassicFileServerExample method main.
public static void main(final String[] args) throws Exception {
if (args.length < 1) {
System.err.println("Please specify document root directory");
System.exit(1);
}
// Document root directory
final String docRoot = args[0];
int port = 8080;
if (args.length >= 2) {
port = Integer.parseInt(args[1]);
}
SSLContext sslContext = null;
if (port == 8443) {
// Initialize SSL context
final URL url = ClassicFileServerExample.class.getResource("/my.keystore");
if (url == null) {
System.out.println("Keystore not found");
System.exit(1);
}
sslContext = SSLContexts.custom().loadKeyMaterial(url, "secret".toCharArray(), "secret".toCharArray()).build();
}
final SocketConfig socketConfig = SocketConfig.custom().setSoTimeout(15, TimeUnit.SECONDS).setTcpNoDelay(true).build();
final HttpServer server = ServerBootstrap.bootstrap().setListenerPort(port).setSocketConfig(socketConfig).setSslContext(sslContext).setExceptionListener(new ExceptionListener() {
@Override
public void onError(final Exception ex) {
ex.printStackTrace();
}
@Override
public void onError(final HttpConnection conn, final Exception ex) {
if (ex instanceof SocketTimeoutException) {
System.err.println("Connection timed out");
} else if (ex instanceof ConnectionClosedException) {
System.err.println(ex.getMessage());
} else {
ex.printStackTrace();
}
}
}).register("*", new HttpFileHandler(docRoot)).create();
server.start();
Runtime.getRuntime().addShutdownHook(new Thread(() -> server.close(CloseMode.GRACEFUL)));
System.out.println("Listening on port " + port);
server.awaitTermination(TimeValue.MAX_VALUE);
}
use of org.apache.hc.core5.http.ExceptionListener in project httpcomponents-core by apache.
the class ClassicReverseProxyExample method main.
public static void main(final String[] args) throws Exception {
if (args.length < 1) {
System.out.println("Usage: <hostname[:port]> [listener port]");
System.exit(1);
}
final HttpHost targetHost = HttpHost.create(args[0]);
int port = 8080;
if (args.length > 1) {
port = Integer.parseInt(args[1]);
}
System.out.println("Reverse proxy to " + targetHost);
final HttpRequester requester = RequesterBootstrap.bootstrap().setStreamListener(new Http1StreamListener() {
@Override
public void onRequestHead(final HttpConnection connection, final HttpRequest request) {
System.out.println("[proxy->origin] " + Thread.currentThread() + " " + request.getMethod() + " " + request.getRequestUri());
}
@Override
public void onResponseHead(final HttpConnection connection, final HttpResponse response) {
System.out.println("[proxy<-origin] " + Thread.currentThread() + " status " + response.getCode());
}
@Override
public void onExchangeComplete(final HttpConnection connection, final boolean keepAlive) {
System.out.println("[proxy<-origin] " + Thread.currentThread() + " exchange completed; " + "connection " + (keepAlive ? "kept alive" : "cannot be kept alive"));
}
}).setConnPoolListener(new ConnPoolListener<HttpHost>() {
@Override
public void onLease(final HttpHost route, final ConnPoolStats<HttpHost> connPoolStats) {
final StringBuilder buf = new StringBuilder();
buf.append("[proxy->origin] ").append(Thread.currentThread()).append(" connection leased ").append(route);
System.out.println(buf);
}
@Override
public void onRelease(final HttpHost route, final ConnPoolStats<HttpHost> connPoolStats) {
final StringBuilder buf = new StringBuilder();
buf.append("[proxy->origin] ").append(Thread.currentThread()).append(" connection released ").append(route);
final PoolStats totals = connPoolStats.getTotalStats();
buf.append("; total kept alive: ").append(totals.getAvailable()).append("; ");
buf.append("total allocated: ").append(totals.getLeased() + totals.getAvailable());
buf.append(" of ").append(totals.getMax());
System.out.println(buf);
}
}).create();
final HttpServer server = ServerBootstrap.bootstrap().setListenerPort(port).setStreamListener(new Http1StreamListener() {
@Override
public void onRequestHead(final HttpConnection connection, final HttpRequest request) {
System.out.println("[client->proxy] " + Thread.currentThread() + " " + request.getMethod() + " " + request.getRequestUri());
}
@Override
public void onResponseHead(final HttpConnection connection, final HttpResponse response) {
System.out.println("[client<-proxy] " + Thread.currentThread() + " status " + response.getCode());
}
@Override
public void onExchangeComplete(final HttpConnection connection, final boolean keepAlive) {
System.out.println("[client<-proxy] " + Thread.currentThread() + " exchange completed; " + "connection " + (keepAlive ? "kept alive" : "cannot be kept alive"));
}
}).setExceptionListener(new ExceptionListener() {
@Override
public void onError(final Exception ex) {
if (ex instanceof SocketException) {
System.out.println("[client->proxy] " + Thread.currentThread() + " " + ex.getMessage());
} else {
System.out.println("[client->proxy] " + Thread.currentThread() + " " + ex.getMessage());
ex.printStackTrace(System.out);
}
}
@Override
public void onError(final HttpConnection connection, final Exception ex) {
if (ex instanceof SocketTimeoutException) {
System.out.println("[client->proxy] " + Thread.currentThread() + " time out");
} else if (ex instanceof SocketException || ex instanceof ConnectionClosedException) {
System.out.println("[client->proxy] " + Thread.currentThread() + " " + ex.getMessage());
} else {
System.out.println("[client->proxy] " + Thread.currentThread() + " " + ex.getMessage());
ex.printStackTrace(System.out);
}
}
}).register("*", new ProxyHandler(targetHost, requester)).create();
server.start();
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
server.close(CloseMode.GRACEFUL);
requester.close(CloseMode.GRACEFUL);
}));
System.out.println("Listening on port " + port);
server.awaitTermination(TimeValue.MAX_VALUE);
}
Aggregations