Sources:eclipse.org, wiki.eclipse.org-Embedding_Jetty, dzone.com
---------------------------------------------------------------------------------------------------------------------------------------------
#Embed jetty in app. (javax.servlet-api-3.0.1.jar & jetty-all-9.0.4.v20130625.jar should be on classpath.)
Main.java
import org.eclipse.jetty.server.Server;
public class Main {
public static void main(String[] args) throws Exception {
Server server = new Server(10017);
server.setHandler(new MouseClickRequestHandler());
server.start();
server.join();
}
}
MouseClickRequestHandler.java:
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MouseClickRequestHandler extends AbstractHandler {
@Override
public void handle(String s, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
...
baseRequest.setHandled(true);
}
}
//To serve securely with https Main.java needs to be re-written as follows after creating keystore.jks file using keytool java utility.
keytool -genkey -alias clickbot -keyalg RSA -keystore keystore.jks -keysize 2048
#To see certificate details stored in .jks file use following.
keytool -list -v -keystore <.jks file> -storepass <password (if any.)>
Main.java:
import org.eclipse.jetty.server.*;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import java.net.URL;
public static void main(String[] args) throws Exception {
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(10017);
HttpConfiguration https = new HttpConfiguration();
https.addCustomizer(new SecureRequestCustomizer());
SslContextFactory sslContextFactory = new SslContextFactory();
URL resource = Main.class.getResource("keystore.jks");
String keyStorePath = resource.toExternalForm();
sslContextFactory.setKeyStorePath(keyStorePath);
sslContextFactory.setKeyStorePassword("ugam@123");
sslContextFactory.setKeyManagerPassword("ugam@123");
ServerConnector sslConnector = new ServerConnector(server, new SslConnectionFactory(sslContextFactory, "HTTP/1.1"), new HttpConnectionFactory(https));
sslConnector.setPort(10018);
server.setConnectors(new Connector[]{connector, sslConnector});
server.setHandler(new MouseClickRequestHandler());
server.start();
server.join();
}
---------------------------------------------------------------------------------------------------------------------------------------------