You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.8 KiB
52 lines
1.8 KiB
/* Beispiel angelehnt an http://www.torsten-horn.de/techdocs/jee-rest.htm */
|
|
package verteiltesysteme.aws;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.PrintStream;
|
|
import java.net.URI;
|
|
|
|
import org.glassfish.grizzly.http.server.ErrorPageGenerator;
|
|
import org.glassfish.grizzly.http.server.HttpServer;
|
|
import org.glassfish.grizzly.http.server.Request;
|
|
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
|
|
import org.glassfish.jersey.server.ResourceConfig;
|
|
|
|
public class TCPTimeCounterRESTServer {
|
|
public static void main(String[] args) throws IOException, InterruptedException {
|
|
String baseUrl = (args.length > 0) ? args[0] : "http://0.0.0.0:36042";
|
|
|
|
final HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create(baseUrl),
|
|
new ResourceConfig(TCPTimeCounterRESTService.class), false);
|
|
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
server.shutdownNow();
|
|
}
|
|
}));
|
|
|
|
ErrorPageGenerator epg = new ErrorPageGenerator() {
|
|
@Override
|
|
public String generate(Request request, int status, String reasonPhrase, String description,
|
|
Throwable exception) {
|
|
StringBuilder sb = new StringBuilder();
|
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
PrintStream ps = new PrintStream(baos);
|
|
exception.printStackTrace(ps);
|
|
ps.close();
|
|
sb.append(new String(baos.toByteArray()));
|
|
System.out.println(sb.toString());
|
|
return sb.toString();
|
|
}
|
|
};
|
|
server.getServerConfiguration().setDefaultErrorPageGenerator(epg);
|
|
|
|
server.start();
|
|
|
|
System.out.println("Grizzly-HTTP-Server gestartet");
|
|
System.out.println("Stoppen des Grizzly-HTTP-Servers mit: Strg+C\n");
|
|
System.out.println("RESTful Web Service URL: " + baseUrl + TCPTimeCounterRESTService.webContextPath);
|
|
|
|
Thread.currentThread().join();
|
|
}
|
|
}
|