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] ------------------------------------------------------------------------