Die Anwendung von WebService ist immer umfangreicher geworden. Im Folgenden werden verschiedene Möglichkeiten eingeführt, um Webservice im Java -System zu entwickeln, was einer Aufzeichnung entspricht.
1.AXIS2
Axis ist die nächste Open -Source -Webservice -Entwicklungskomponente von Apache. Es erschien relativ früh und reif. Hier stellen wir hauptsächlich die Entwicklung von Axis+Eclipse WebService vor. Natürlich können Sie Webservice ohne Sonnenfinsternis entwickeln und veröffentlichen, aber es wird bequemer, Eclipse zu verwenden.
(1) Laden Sie die Java EE -Version von Eclipse herunter //www.vevb.com/softs/239903.html#down
(2) Download AXIS2 http://axis.apache.org/axis2/java/core/download.cgi
(3) Laden Sie das Axis2 -Plugin der Sonnenfinsternis herunter
AXIS2_CODEGEN_WIZARD
Axis2_Service_Archiver
http://axis.apache.org/axis2/java/core/tools/index.html
Empfohlen zur Verwendung von Version 1.3
(4) Eclipse zum Installieren von AXIS2-Plug-In
1) Erstellen Sie einen neuen Axis2-Ordner in einem beliebigen Verzeichnis, erstellen Sie ein neues Eclipse-Verzeichnis unter diesem Ordner und erstellen Sie ein neues Plugins-Verzeichnis und Features-Verzeichnis im Eclipse-Verzeichnis, wie z.
2) Entpacken Sie das heruntergeladene AXIS2 -Plugin und platzieren Sie die dekomprimierte Datei im Plugins -Verzeichnis der neu erstellten Eclipse.
3) Erstellen Sie ein neues Verzeichnis für Links im Verzeichnis % Eclipse_Home % und erstellen Sie eine neue Axis2.Link-Datei im Verzeichnis von Links mit dem Inhalt: path = d:/programmoftware/eclipse-svn/axis2;
4) Eclipse neu starten und klicken Sie auf ・ Datei-New-Other. Wenn Sie Axis2-Assistenten sehen, bedeutet dies, dass das Plug-In erfolgreich installiert ist.
(5) Achse2 einbauen
Laden Sie die Kriegsverteilung von Axis2 herunter und dekomprimieren Sie sie, platzieren Sie das Axis2.WAR -Paket unter %tomcat_home %/webapps, starten Sie Tomcat, besuchen Sie http: // localhost: port/axis2 und Axis2 wird erfolgreich installiert.
(6) Verwenden Sie Eclipse, um ein neues Webprojekt zu erstellen und eine normale Java -Klasse zu erstellen, einschließlich mindestens einer Methode.
(7) Veröffentlichen Sie einen Webservice
1) Klicken Sie in Eclipse auf Datei-New-Other, Open Axis2-Assistenten, Wählen Sie Axis2 Service-Archiver und dann als nächstes.
2) Wählen Sie den Speicherort der Klassendatei, dh den Speicher der Klassendatei. HINWEIS: Wählen Sie nur das Verzeichnis der Klassen aus, geben Sie den Paketordner nicht an und dann als nächstes.
3) Wählen Sie die WSDL überspringen und dann als nächstes
4) Wählen Sie nebenbei die Service -XML -Datei, die in das Service -Archiv aufgenommen werden soll, und überprüfen Sie das automatische Generieren von TheService XML.
5) Service-Name-Fill in Ihrem Dienstnamen, Klassenname-Fill im Klassennamen, einschließlich des Paketnamens, klicken Sie dann auf Laden und klicken Sie dann auf Fertig stellen. Zu diesem Zeitpunkt wird der Webservice erfolgreich veröffentlicht.
6) Gehen Sie dann zu %tomcat_home %/webapps/axis2/web-inf/dienste, um festzustellen, ob eine zusätzliche .AAR-Datei vorliegt.
7) Besuchen Sie http: // localhost: 8085/axis2/dienste/klassenname? WSDL, um die generierte WSDL -Datei anzuzeigen.
HINWEIS: Die obige Methode besteht darin, sie am Axis2.war -Paket zu veröffentlichen. Sie können auch die generierte .AAR -Datei in Ihre tatsächliche Anwendung kopieren. Gleichzeitig können Sie auch die Funktion "Website erstellen" von Eclipse verwenden, um Ihre Website zu veröffentlichen. Wählen Sie AXIS2 aus, um Ihre Website zu generieren, damit die Website für Ihre Anwendung bereitgestellt wird.
2.APCHE CXF
CXF Development WebService ist ebenfalls relativ bequem und einfach, und seine Integration in den Frühling kann als sehr gut bezeichnet werden. Nehmen wir ein Beispiel für CXF Development WebService.
1) Erstellen Sie ein neues Webprojekt in Eclipse- und Importpaketen.
2) Schreiben Sie eine Schnittstelle wie:
öffentlicher String -Test (@WebParam (name = "value", targetnamespace = "http://service.cxf.zcl.com/", modus = webparam.mode.in) String -Wert);
Hinweis: Im von CXF entwickelten WebService müssen die Parameter der Methoden in der Schnittstelle auf diese Weise vorliegen. Andernfalls empfängt der CXF -Server den Parameterwert nicht, wenn der Client es aufruft. Name: Parametername, schreiben Sie ihn nicht (empfohlen, ihn zu schreiben), targetNameSpace: Namespace, muss ausgefüllt werden. Die Standardeinstellung ist die umgekehrte Reihenfolge des Paketnamens, Modus: Parametertyp, in Repräsentation Eingabe.
3) eine Implementierungsklasse schreiben und die Schnittstellenmethode implementieren.
4) In Spring integrieren, schreiben Sie eine Bean-Datei, wie z. B. CXF-Beans.xml, mit dem folgenden Inhalt:
<? xmlns: jaxws = "http://cxf.apache.org/jaxws" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.spingframe.orge/bean/beans/beans- http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> <import ressource ressourcen = "classPath: meta-inf/cxf/cxf-servlet.xml"/> <jaxws: Endpoint ID = "Vote" Implementor = "com.zcl.cxf.service.voteImpl" adress = "/stimmen"/> </beans>
Diese Datei ist einfacher zu verstehen, daher werde ich sie nicht erklären.
5) CXFServlet konfigurieren
Konfigurieren Sie CXFServlet in der Datei web.xml und laden Sie die Datei cxf-beaans.xml mit dem folgenden Inhalt:
<web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi: schenalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "id =" webapp_id "Version =" 2.5 "> <context-Param> <param-name> contextconfigLocation </param-hame> <param-value> web-p./cxf-beans <Hörer> <Hörer-Klasse> org.springframework.web.context.contextloaderListener </Listener-Klasse> </Listener> <Servlet> <Servlet-Name> cxf </servlet-name> <Servlet-Class> org.apache.cxf.transport.Servlet.cxfServlet.cxfServlet </servlet-class> class> -Class> </servlet-class> -Class> </servlet-class> </servlet class> <Load-on-Startups> 1 </load-on-startup> </servlet> <servlet-mapping> <Servlet-name> cxf </servlet-name> <URL-Muster>/dienste/*</url-pufter> </servlet-mapping> </web-App>
Stellen Sie das Projekt in Middleware wie Tomcat bereit und Sie können auf den Website -Dienst zugreifen.
3.jdk Development Webservice
1) Schreiben Sie eine Java -Klasse wie folgt:
Paketdemo; importieren javax.jws.webparam; importieren javax.jws.webservice; importieren javax.xml.ws.endpoint; @Webservice public class jdkwebService {public String dosomething (@WebParam (name = "value", targetnamespace = "http: // Demo/", modus = webparam.mode.in) String Value) {return "einfach do" + value + "!"; } public static void main (String [] args) {endpoint.publish ("http: // localhost: 8080/jdkwsdemo/Demo.jdkwebservice", New Jdkwebservice ()); }} 2) Führen Sie die Java -Klasse aus und Sie können auf den Webservice im Browser zugreifen.
Hinweis: Diese Methode ist bei der Entwicklung von Web -Engineering nicht sehr freundlich. Wir können eine Servlet -Klasse schreiben und einen Webservice in der Initialisierungsmethode der Servlet -Klasse veröffentlichen, damit unser Middleware -Server uns automatisch beim Starten hilft.
3) xfire
Es gibt viele Frameworks für die Entwicklung von Webservice, und jedes Framework hat seine eigenen Funktionen. Vor kurzem habe ich XFire verwendet, um die Entwicklung von Webservice zu üben. Im Folgenden finden Sie ein kleines Beispiel für die Entwicklung von Webservice. Ich hoffe, es wird für diejenigen hilfreich sein, die anfangen.
1. Erstellen Sie ein neues Java-Webprojekt mit dem Namen testwebservice, fügen Sie XFire-bezogene JAR-Pakete zum Lib-Verzeichnis, schreiben Sie Schnittstellenklassen und Implementierungsklassen
Paket com.lamp.service; public interface messageservice {public String getName (String -Name); } Paket com.lamp.service; public interface messageservice {public String getName (String -Name); } Implementierungsklasse
Paket com.lamp.service.impl; import com.lamp.service.messageService; public class messgeryServiceImpl implementiert messusservice {public String getName (String -Name) {return "hellow" + name + ", Willkommen bei WebService World"; }} Paket com.lamp.service.impl; import com.lamp.service.messageService; public class messgeryServiceImpl implementiert messusservice {public String getName (String -Name) {return "hellow" + name + ", Willkommen bei WebService World"; }} Erstellen Sie im SRC-Verzeichnis einen neuen Ordner-Meta-INF, erstellen Sie dann einen neuen Ordner xfire unter ihm und erstellen Sie im XFire-Verzeichnis eine neue Konfigurationsdateidienste.xml
<? <IMplementationClass> com.lamp.service.imPl.MessageServiceImpl </ImplementationClass> </service> </beans> <xml Version = "1.0" coding = "utf-8"? <ServiceClass> com.lamp.service.messageService </serviceClass> <IMplementationClass> com.lamp.service.imPl.MessageServiceImpl </ImplementationClass> </service> </beans>
Konfigurieren Sie schließlich das Servlet von Xfire in web.xml
<servlet> <servlet-name> xfireServlet </servlet-name> <servlet-classe> org.codehaus.xfire.transport.http.xfireconfigurableServlet </Servlet-Class> </Servlet> </servlet-maping> <servlet-nam> xfirtservlet </xfiresvlet </xfiresvlet </servlet-name <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name> xfireServlet </servlet-name> <URL-Muster>/dienste/*</url-pattern> </servlet-Mapping>
Nach der Bereitstellung des Projekts können Sie die Remote -Zugriffsschnittstelle im Browser über http: // localhost: 8080/testwebservice/dienste sehen und WSDL als http: // localhost: 8080/testwebservice/dienste/dienste erhalten?
Auf diese Weise wird die Serverentwicklung abgeschlossen, und jetzt wird die Cliententwicklung gestartet
Erstellen Sie ein neues Java-Projekt und stellen Sie auch XFire-bezogene Gläser ein. Ich verwende Ant, um Proxy -Objekte im Client zu generieren und einen neuen Build.xml unter dem Projektpfad zu erstellen, und der Code ist
<? default = "gen-webservice"> <Eigenschaftsdatei = "Build.Properties"> </property> <path id = "project-clasSetPath"> <fileet Dir = "$ {lib.dir}"> <include name = "**/*. classname = "org.codeehaus.xfire.gen.wsgentask" classpathref = "project-classPath"/> <wSgen outputDirectory = "$ {src.dir}" wsdl = "$ {wsdl.dir}" package = "com.lamp.ws.client" überschreibt "true"/aga> </garging> projetws <? default = "gen-webservice"> <Eigenschaftsdatei = "Build.Properties"> </property> <path id = "project-clasSetPath"> <fileet Dir = "$ {lib.dir}"> <include name = "**/*. classname = "org.codeehaus.xfire.gen.wsgentask" classpathref = "project-classPath"/> <wSgen outputDirectory = "$ {src.dir}" wsdl = "$ {wsdl.dir}" package = "com.lamp.ws.client" überschreibt "true"/aga> </garging> projetws Die von Build.Properties eingeführte Datei befindet sich ebenfalls im Projektpfad
src.dir = $ {basierendir}/src lib.dir = f: /webservice/xfire-1.2.6/lib wsdl.dir = http: // localhost: 8080/testwebservice/dienste/messusservice? wsdl Wo lib.jar den Weg von Xfire für mich speichert, leiten Sie Ant, um das Proxy -Objekt zu erhalten
Schreiben Sie eine Testklasse
Paket com.lamp.test; import com.lamp.ws.client.messageServiceClient; import com.lamp.ws.client.messageServiceportype; public class testgetName {public static void main (String [] args) {messageServiceClient msg = new MessageServiceClient (); MessageServicePortType portType = msg.getMessageServiceHttpport (); String result = portType.getName ("Zhang san"); System.out.println (Ergebnis); }} Paket com.lamp.test; import com.lamp.ws.client.messageServiceClient; import com.lamp.ws.client.messageServiceportype; public class testgetName {public static void main (String [] args) {messageServiceClient msg = new MessageServiceClient (); MessageServicePortType portType = msg.getMessageServiceHttpport (); String result = portType.getName ("Zhang san"); System.out.println (Ergebnis); }} Als ich auf der Konsole lief, sah ich Hellow Zhang San, Willkommen bei WebService World, und eine einfache Webservice -Entwicklung wurde abgeschlossen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.