January 22, 2007

Web Service mit Java 6

Im neuen Java Release (Mustang) besteht die Möglichkeit ohne weitere Zusatzmittel mit Web Services zu arbeiten. Es ist sehr einfach einen solchen Service lokal zu testen. Lediglich die Klasse, die Services (Methoden/Funktionalität) bereitstellen soll, wird mit einigen Annotations versehen.

Um eine Klasse als Web Service zu kennzeichnen wird sie mit der Annotation javax.jws.WebService und Service Methoden mit javax.jws.WebMethod markiert. Außerdem muss der Web Service veröffentlicht werden. Hier hilft die Klasse javax.xml.ws.Endpoint, die eine statische Methode publish(String address, Object implementor) zur Verfügung stellt.

package webservicetest;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.xml.ws.Endpoint;

@WebService
public class CalculatorService{

@WebMethod
public int duplicate(int value){
return value * 2;
}

public static void main(String[] args) {
Endpoint.publish("http://localhost:8080/Calculator", new CalculatorService());
}
}


Startet man die main Methode dieser Klasse, ist der Web Service unter der URL http://localhost:8080/Calculator so lange verfügbar bis das Programm terminiert. Als Test kann die URL http://localhost:8080/Calculator/rate?WSDL aufgerufen werden. Im Browser erscheint daraufhin eine Beschreibung des Services im WSDL Format.

Mehr Informationen und weitere Möglichkeiten finden sich in der Java 6 API.

2 comments:

  1. Nice example, thanks. But like most examples on the web, you forgot to mention that one has to call the wsgen tool. Something like

    %JAVA_HOME%\bin\wsgen -classpath classes -d classes -s src webservicetest.CalculatorService

    Regards

    ReplyDelete
  2. Hi I love this post and it was so good and I am definetly going to save it. One thing to say the Indepth analysis you have done is greatly remarkable.Who goes that extra mile these days? Bravo! Just another tip you shouldget a Translator for your Worldwide Audience ..

    ReplyDelete