tisdag 27 maj 2008

Java Forum

I går var jag på Java Forum i Stockholm.

Det var en trevlig och relativt välbesökt tillställning som vanligt.

I går presenterades det bland annat WebServices i en Java utvecklares vardag.
WebServices kan vara så enkelt att det knappt märks, men samtidigt
så in i helsike jobbigt att få till rätt.
Bra presentation.

Sen kom en presentation om Closures i Java.
Det som presentatören missade var mest att tala om vilka problem som man vill lösa med Closures. Personligen tycker jag att man får en ännu kladdigare syntax och vinner väldigt lite på det. Men man kanske hinner ändra sig till dess att det kommer med i Java 8(?).

Efter det kom lite rapportering från JavaOne. Vissa var mer pålästa och intressanta att lyssna på än en del andra....

torsdag 6 mars 2008

Java's inbyggda WebServer

I Java 6 så har Sun packat med en trevlig liten WebServer som naturligtvis pratar HTTP.
Den är tämligen enkel att använda och lämpar sig väldigt bra att göra små web gränssnitt med
t.ex. för administrativa göromål.

För att använda Servern behöver man bara ange vilken port den skall lyssna på och vilket
context den skall lyssna på. D.v.s. "/" om man skall ta hand om alla requests eller
"/admin" om man vill ta emot allt under den pathen.

Servern heter HttpServer och finns javadoc'ad här

ett enkelt exempel (hämtat från javadocen)
   HttpServer server = HttpServer.create(new InetSocketAddress(8000));
server.createContext("/applications/myapp", new MyHandler());
server.setExecutor(null); // creates a default executor
server.start();
Där MyHandler är en klass som implementerar HttpHandler interfacet.

Det mesta är tämligen enkelt, men kom bara ihåg att anropa sendResponsHeaders() innan man anropar getResponseBody(). När man fyllt sitt respons med data så skall man även komma ihåg att anropa close() på den OutputStream som man fick från getResponseBody() anropet. Glömmer man bort detta så kommer inte något svar att skickas.