


Ausführliche Erläuterung von Beispielen für die Java-Integration von CXF zur Vervollständigung der Webdienstentwicklung
In diesem Artikel wird hauptsächlich das Beispiel der CXF-Integration durch Spring Boot zur Entwicklung von Webdiensten vorgestellt. Der Herausgeber findet es recht gut, daher werde ich es jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und werfen wir einen Blick darauf.
Vorwort
Apropos Webdienste: Restful ist in den letzten Jahren sehr beliebt geworden und hat die Tendenz, traditionelle Seife zu ersetzen Webdienste, aber es gibt einige einzigartige Funktionen. Oder relativ alte Systeme verwenden immer noch traditionelle Soap-Webdienste, wie z. B. Schnittstellen zur Abfrage von Bank- und Flugtickets.
Wir stoßen derzeit auf diese Situation. Wir müssen die von einem Drittanbieter bereitgestellte Soap-Webservice-Schnittstelle im System abfragen, was bedeutet, dass wir sie in das bestehende System integrieren müssen.
Die Spring-Integration von CXF ist ursprünglich sehr einfach, aber da ich Spring Boot verwende, möchte ich nicht die vorherige XML-Konfigurationsmethode verwenden. Kann sie also elegant gemäß dem Spring Boot-Stil integriert werden?
Die Antwort ist natürlich ja, aber es gibt fast keine Informationen darüber im Internet. Nach viel Mühe halte ich es für notwendig, es aufzuzeichnen, obwohl es sehr einfach erscheint.
Abhängigkeiten hinzufügen
Für Maven-Projekte besteht der erste Schritt darin, Abhängigkeiten hinzuzufügen. Zusätzlich zu den ursprünglichen Spring-Boot-Abhängigkeiten müssen Sie auch CXF-Abhängigkeiten hinzufügen:
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.6</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>3.1.6</version> </dependency>
Geschäftscode schreiben
Hier nehmen wir die Abfrage von Benutzerinformationen als Beispiel und erstellen ein benutzerdefiniertes Benutzer-Objekt:
public class User implements Serializable { private static final long serialVersionUID = -5939599230753662529L; private Long userId; private String username; private String email; private Date gmtCreate; //getter setter ...... }
Als nächstes erstellen Sie eine Benutzeroberfläche für die Bereitstellung von Webdienstdiensten. Es gibt zwei Methoden getName
und getUser
, eine gibt einen normalen String und die andere ein benutzerdefiniertes Objekt zurück:
@WebService public interface UserService { @WebMethod String getName(@WebParam(name = "userId") Long userId); @WebMethod User getUser(Long userId); }
Ja, natürlich muss die Schnittstelle mit Geschäftscode implementiert werden. Hier führen wir nur eine einfache Demonstration durch:
public class UserServiceImpl implements UserService { private Map<Long, User> userMap = new HashMap<Long, User>(); public UserServiceImpl() { User user = new User(); user.setUserId(10001L); user.setUsername("liyd1"); user.setEmail("liyd1@qq.com"); user.setGmtCreate(new Date()); userMap.put(user.getUserId(), user); user = new User(); user.setUserId(10002L); user.setUsername("liyd2"); user.setEmail("liyd2@qq.com"); user.setGmtCreate(new Date()); userMap.put(user.getUserId(), user); user = new User(); user.setUserId(10003L); user.setUsername("liyd3"); user.setEmail("liyd3@qq.com"); user.setGmtCreate(new Date()); userMap.put(user.getUserId(), user); } @Override public String getName(Long userId) { return "liyd-" + userId; } @Override public User getUser(Long userId) { return userMap.get(userId); } }
Dienst veröffentlichen
Wir haben das Schreiben der Schnittstelle abgeschlossen und Geschäftscode sowie der Rest. Der nächste Schritt besteht darin, Dienste zu veröffentlichen, bei denen es sich um die Integration von Spring Boot und cxf handelt.
Tatsächlich ist die Integration der beiden sehr einfach und prägnanter als die vorherige XML-Methode:
@Configuration public class CxfConfig { @Bean public ServletRegistrationBean dispatcherServlet() { return new ServletRegistrationBean(new CXFServlet(), "/soap/*"); } @Bean(name = Bus.DEFAULT_BUS_ID) public SpringBus springBus() { return new SpringBus(); } @Bean public UserService userService() { return new UserServiceImpl(); } @Bean public Endpoint endpoint() { EndpointImpl endpoint = new EndpointImpl(springBus(), userService()); endpoint.publish("/user"); return endpoint; } }
Sie können von der Konfiguration von cxf bis zur Veröffentlichung sehen Dienste, es erfordert nur ein oder zwei Zeilen Code, überraschend einfach, oder?
Zu diesem Zeitpunkt sind alle unsere Vorgänge abgeschlossen. Starten Sie Spring Boot und besuchen Sie localhost:8080/soap/user?wsdl
Sie können sehen, dass die relevanten WSDL-Beschreibungsinformationen ausgegeben werden, erklären Sie den Dienst wurde veröffentlicht.
Rufen Sie den Dienst auf
Wie wird der Webdienst aufgerufen? Wenn Sie beispielsweise einige Schnittstellen von Drittanbietern integrieren, wird er zuerst aufgerufen freigegeben?
Um den Soap-Webdienst aufzurufen, besteht die allgemeine Methode darin, Client-Code basierend auf WSDL zu generieren. Nach der Integration kann er wie der Aufruf einer lokalen Schnittstelle verwendet werden.
Aber mir persönlich gefällt diese Methode nicht besonders. Jede Schnittstelle muss einmal generiert werden, und es gibt eine Menge Code, was sich mühsam anfühlt.
Ich bevorzuge relativ die Methode zum Aufrufen des Methodennamens, die erfrischend und prägnant ist. Das Folgende ist der gesamte Code:
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf.createClient("http://localhost:8080/soap/user?wsdl"); Object[] objects = client.invoke("getUser", 10002L); //输出调用结果 System.out.println(objects[0].getClass()); System.out.println(objects[0].toString());
Bei dieser Methode ist zu beachten, dass der Dienst Schnittstelle heißt Was zurückgegeben wird, ist ein benutzerdefiniertes Objekt, dann wird der Datentyp im Ergebnis Object[] zu diesem benutzerdefinierten Objekt (die Komponente generiert dieses Objekt automatisch für Sie),
aber Ihr local Diese Klasse ist möglicherweise nicht vorhanden, daher müssen Sie sie selbst konvertieren. Der einfachste Weg besteht darin, eine neue Klasse zu erstellen, die genau dem zurückgegebenen Ergebnis entspricht, und die Konvertierung zu erzwingen. Eine bessere Möglichkeit besteht natürlich darin, eine allgemeine Klasse zu kapseln . Dies ist nicht Gegenstand dieses Artikels und wird hier nicht ausführlich besprochen.
[Verwandte Empfehlungen]
1. Java Kostenloses Video-Tutorial
3. Umfassende Analyse von Java-Annotationen
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen für die Java-Integration von CXF zur Vervollständigung der Webdienstentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.
