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.
Nice example, thanks. But like most examples on the web, you forgot to mention that one has to call the wsgen tool. Something like
ReplyDelete%JAVA_HOME%\bin\wsgen -classpath classes -d classes -s src webservicetest.CalculatorService
Regards
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