Fusible JBoss - Apache CXF
En este capítulo, analicemos qué es Apache CXF y cómo puede ser útil para desarrollar SOAP y Rest Web Services.
¿Qué es Apache CXF?
Apache CXF es un marco de desarrollo de servicios web que se puede utilizar para desarrollar servicios web SOAP y Rest. CXF cumple totalmente conJAX-RS and JAX-Ws estándar.
Actualmente, es el marco de desarrollo de servicios web más utilizado. CXF ha aprendido y mejorado con respecto a Axis2, que ahora está siendo reemplazado gradualmente por CXF.
CXF frente a Axis2
CXF | Eje2 | |
---|---|---|
Mejoras | CXF es el marco más utilizado a partir de ahora. Tiene muchas mejoras sobre Axis2 |
Axis2 está siendo reemplazado gradualmente por CXf. Requiere más código en comparación con CXF |
Código requerido | CXF requiere menos código en comparación con Axis2 |
Axis2 requiere más código comparativamente |
Cumplimiento de normas | CSF es totalmente compatible con JAX-RS y JAX-WS |
Axis2 no es totalmente compatible con JAX-RS y JAX-WS |
Compatible con Spring | si |
No |
Separación de frontales | Separación limpia del front-end del código JAX-WS |
No se proporciona una separación limpia |
JABÓN
SOAP significa Protocolo simple de acceso a objetos. Es un protocolo para intercambiar información estructurada a través de servicios web entre dos sistemas. Se basa principalmente en XML para estructurar datos y utiliza HTTP o SMTP para la negociación y transmisión de mensajes.
Hay dos enfoques para desarrollar servicios web SOAP:
Code first - En este enfoque, WSDL se genera a partir de código.
Contract first - En el contrato primero, el código se genera a partir de WSDL.
Desarrollo SOAP con CXF
Configurar Maven
Agregue el siguiente perfil a su settings.xml de Maven.
<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>
Crear esqueleto
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:[email protected]>install -s mvn:org.fusesource.example/cxf-basic/1.0-SNAPSH
Check if bundle has registered SOQP web-service
Abrir URL http://localhost:8181/cxf
El servicio web debe aparecer de la siguiente manera.
Testing Web-Service
mvn -Pclient
INFO - Creación de servicio {http://ws.totorials.com/} PersonService de la clase 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] ------------------------------------------------------------------------