Seit Java 6 gibt es die Möglichkeit, selbst geschriebene Web Service – Klassen ohne Applikationserver und/oder Includes bereitzustellen. Hierzu wird die Endpoint-Klasse aus dem Package javax.xml.ws verwendet. Als Ausgangspunkt nehme ich den Rechteck-Web Service aus dem vorherigen Beitrag.
Unter dem neuen Package „Server“ habe ich mir eine einfache Java-Klasse namens „Server“ generieren lassen. Diese besitzt nur die Standard-Methode „public static void main(String[] args)„.
package server; import javax.xml.ws.Endpoint; import main.RechteckService; public class Server { /** * @param args */ public static void main(String[] args) { //http://localhost:9202/rechteck/RechteckWebService?wsdl Endpoint.publish("http://localhost:9202/rechteck", new RechteckService()); System.out.println("AxxG-RechteckWebService-Server ready!"); } }
Um die Klasse auszuführen, klicke ich mit der rechten Maustaste auf die Klasse. Unter dem Menüpunkt „Run As„, wähle ich den Eintrag „Java Application“ aus.
Folgende Fehlermeldungen können aufgrund der nicht vorhandenen Schnittstellenklassen auftreten:
18.07.2012 13:04:16 com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrapperClass INFO: Dynamically creating request wrapper Class main.jaxws.BerechneUmfang 18.07.2012 13:04:16 com.sun.xml.internal.ws.model.RuntimeModeler getResponseWrapperClass INFO: Dynamically creating response wrapper bean Class main.jaxws.BerechneUmfangResponse 18.07.2012 13:04:16 com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrapperClass INFO: Dynamically creating request wrapper Class main.jaxws.BerechneInhalt 18.07.2012 13:04:16 com.sun.xml.internal.ws.model.RuntimeModeler getResponseWrapperClass INFO: Dynamically creating response wrapper bean Class main.jaxws.BerechneInhaltResponse
Klartext: Java generiert für Sie die fehlenden Klassen und führt den Web Service aus.
[download id=“8″ format=“2″]
Copyright © 2011 AxxG – Alexander Gräsel
Kommentar verfassen