Mal wieder was zur Erinnerung…

Jetty ein Embedded WebServer für Java, der auch (der übliche Weg)direkt aus einer Java Klasse heraus aufgerufen werden kann. Sprich man bekommt für ein paar MB eine Webanwendung samt Webserver 🙂

Hier die notwendigen Schritte, vorausgesetzt man hat Eclipse installiert

1. Ein KOMPlETTES Jetty Repository herunter laden. Das erkennt man an der vorhandenen oder fehlenden start.jar. Z.B von hier
oder jetty-distribution-8.0.4.v20111024

2. In Eclipse ein neues Java Project in Eclipse erstellen. Alles auf Standard lassen. Finish klicken

3.Auf src mit rechts klicken und „New -> Class“ auswählen.Als Package Name z.b „com.trytry“ und als Klassen Name z.B“HelloHandler“. Die muss man sich nur merken und bei behalten, wenn man danach gefragt wird

4. Man klickt auf den Project Namen mit rechts und dann „New -> Folder“, diesen nennt man lib. In diesen kopiert man alle jar Files aus dem lib Verzeichnis des herunter geladenen Jetty zip Files

5. Diese Jar Files macht man dem Project bekannt. In dem man mit rechts auf den Projekt Namen klickt und dann „Properties -> Java Build Path -> Add JARs -> im LIB Verzeichnis alle markieren -> ok -> ok“

6. Muss man einfach die HelloHandler.java in Eclipse durch doppelklicken öffnen und für ein einfaches HalloWorld Programm diesen Code eingeben


package com.trytry;

import java.io.IOException;
import java.net.InetAddress;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

public class HelloHandler extends AbstractHandler{

public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("

Jetty Server

");
}
public static void main(String[] args) {
int port = 8090;
String IPAddress = "";

try {
Server server = new Server(port);
server.setHandler(new HelloHandler());

InetAddress thisIP = InetAddress.getLocalHost();
IPAddress = thisIP.getHostAddress();
System.out.println("\n Starting Jetty on http://"+ IPAddress + ":" + port + "\n");

server.start();
server.join();

} catch (Exception e) {
e.printStackTrace();
}

}

}

copy+paste sollte funktionieren.

7. Klick auf Projekt in der Menu Leiste dann bei ausgewähltem „Build Automatically“ Clean auswählen und ok beim gewählten Project

8. Jetzt kann man es schon laufen lassen. Klick auf den grünen Run Button und man sollte in der Cosole sehen wie der Jetty zu erreichen ist..
„Starting Jetty on http://192.168.0.100:8090“

9. Jetzt braucht man nur noch einen Browser öffnen und man sollte „Jetty Server“ bei der oben genannten URL sehen

Noch keine richtige Anwendung aber für ein paar MB einen vollständigen Webserver inklusive Anwendung zu bekommen macht zB. im Embedded Bereich vieles möglich

Wie das ganz dann von einer Maschine auf die nächste kopiert wird, ist eine andere Geschichte…man braucht ja noch Projekte 🙂