JBoss-Sicherung - Apache CXF
Lassen Sie uns in diesem Kapitel erläutern, was Apache CXF ist und wie es bei der Entwicklung von SOAP- und Rest-Webdiensten hilfreich sein kann.
Was ist Apache CXF?
Apache CXF ist ein Framework für die Entwicklung von Webdiensten, mit dem SOAP- und Rest-Webdienste entwickelt werden können. CXF ist vollständig kompatibelJAX-RS and JAX-Ws Standard.
Es ist derzeit das am weitesten verbreitete Framework für die Entwicklung von Webdiensten. CXF hat gegenüber Axis2 gelernt und verbessert, das nun schrittweise durch CXF ersetzt wird.
CXF vs Axis2
CXF | Achse2 | |
---|---|---|
Verbesserungen | CXF ist derzeit das am häufigsten verwendete Framework. Es hat viele Verbesserungen gegenüber Axis2 |
Achse2 wird schrittweise durch CXf ersetzt. Im Vergleich zu CXF ist mehr Code erforderlich |
Code erforderlich | CXF benötigt im Vergleich zu Axis2 weniger Code |
Axis2 benötigt vergleichsweise mehr Code |
Standardkonformität | CSF ist vollständig kompatibel mit JAX-RS und JAX-WS |
Axis2 ist nicht vollständig kompatibel mit JAX-RS und JAX-WS |
Kompatibel mit Feder | Ja |
Nein |
Trennung der Frontends | Saubere Trennung des Frontends vom JAX-WS-Code |
Es ist keine saubere Trennung vorgesehen |
SEIFE
SOAP steht für Simple Object Access Protocol. Es ist ein Protokoll zum Austausch strukturierter Informationen über Webdienste zwischen zwei Systemen. Es basiert hauptsächlich auf XML zur Strukturierung von Daten und verwendet HTTP oder SMTP für die Aushandlung und Übertragung von Nachrichten.
Es gibt zwei Ansätze zur Entwicklung von SOAP-Webdiensten:
Code first - Bei diesem Ansatz wird WSDL aus Code generiert.
Contract first - Im Vertrag wird zuerst Code aus WSDL generiert.
SOAP-Entwicklung mit CXF
Konfigurieren Sie Maven
Fügen Sie das folgende Profil zu Ihrer settings.xml von Maven hinzu.
<profiles>
<profile>
<id>Jboss-Fuse</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>fusesource</id>
<url>http://repo.fusesource.com/nexus/content/groups/public/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
</profiles>
Skelett erstellen
mvn archetype:generate
-DarchetypeGroupId = org.apache.servicemix.tooling
-DarchetypeArtifactId = servicemix-cxf-code-first-osgi-bundle
-DarchetypeVersion=2012.01.0.redhat-60024
-DgroupId = org.fusesource.example
-DartifactId = cxf-basic
-Dversion = 1.0-SNAPSHOT
Build Web Service Project.
mvn clean install
Install web-service into Fuse using the following command.
JBossFuse:karaf@root>install -s mvn:org.fusesource.example/cxf-basic/1.0-SNAPSH
Check if bundle has registered SOQP web-service
Öffne URL http://localhost:8181/cxf
Der Webdienst sollte wie folgt aufgeführt sein.
Testing Web-Service
mvn -Pclient
INFO - Service erstellen {http://ws.totorials.com/} PersonService aus der Klasse com.to.
torials.ws.Person
Invoking getPerson...
getPerson._getPerson_personId = Guillaume
getPerson._getPerson_ssn = 000-000-0000
getPerson._getPerson_name = Guillaume
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.668 s
[INFO] Finished at: 2016-02-15T21:01:20+05:30
[INFO] Final Memory: 10M/37M
[INFO] ------------------------------------------------------------------------