0% encontró este documento útil (0 votos)
123 vistas10 páginas

Apache CXF y REST (Configuración)

El documento explica cómo configurar Apache CXF para publicar un servicio web REST. Esto incluye modificar el archivo web.xml para agregar el servlet CXF y los listeners de Spring, agregar las dependencias necesarias en el archivo pom.xml, y configurar el archivo de aplicación Spring para definir el servidor JAX-RS y el bean de servicio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
123 vistas10 páginas

Apache CXF y REST (Configuración)

El documento explica cómo configurar Apache CXF para publicar un servicio web REST. Esto incluye modificar el archivo web.xml para agregar el servlet CXF y los listeners de Spring, agregar las dependencias necesarias en el archivo pom.xml, y configurar el archivo de aplicación Spring para definir el servidor JAX-RS y el bean de servicio.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Apache CXF y REST (Configuración)

En este post vamos a configurar Apache CXF para que sea capaz de publicar un servicio
web REST . Para ello necesitaremos realizar varias operaciones . En primer lugar modificar
el fichero web.xml para añadir el servlet de Apache CXF y los listener de Spring .Ya que
recordemos Apache CXF se apoya de manera fuerte en este framework.

A continuación se muestra el contenido de este fichero

<?xml version="1.0" encoding="UTF-8"?>


<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener>
<listener-
class>org.springframework.web.context.ContextLoaderListener</listener-
class>
</listener>

<servlet>

www.arquitecturajava.com
Apache CXF y REST (Configuración)

<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-
class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

Una vez tenemos configurado el fichero web.xml necesitaremos configurar también las
dependencias en este caso nos apoyaremos en Maven y en un fichero pom.xml.

Vamos a ver el contenido a nivel de dependencias del fichero POM.

<dependencies>

www.arquitecturajava.com
Apache CXF y REST (Configuración)

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>3.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>3.2.2.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>3.2.2.RELEASE</version>

</dependency>

<dependency>

www.arquitecturajava.com
Apache CXF y REST (Configuración)

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-frontend-jaxws</artifactId>

<version>2.7.4</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-transports-http</artifactId>

<version>2.7.4</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId>

<artifactId>cxf-rt-frontend-jaxrs</artifactId>

<version>2.7.4</version>

</dependency>

<dependency>

<groupId>org.apache.cxf</groupId>

www.arquitecturajava.com
Apache CXF y REST (Configuración)

<artifactId>cxf-rt-rs-extension-providers</artifactId>

<version>2.6.0</version>

</dependency>

<dependency>

<groupId>javax.xml.bind</groupId>

<artifactId>jaxb-api</artifactId>

<version>2.2.9</version>

</dependency>

<dependency>

<groupId>org.codehaus.jackson</groupId>

<artifactId>jackson-jaxrs</artifactId>

<version>1.9.0</version>

</dependency>

</dependencies>

Realizadas estas operaciones nos queda configurar el fichero de Spring para que pueda
funcionar con servicios REST sin problemas

www.arquitecturajava.com
Apache CXF y REST (Configuración)

El contenido del fichero de applicationContext.xml será el siguiente

<?xml version="1.0" encoding="UTF-8"?>


<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<jaxrs:server id="servicioRest" address="/">
<jaxrs:serviceBeans>
<bean class="com.arquitecturajava.serviciosexternos.ServicioPersonas"
/>
</jaxrs:serviceBeans>
<jaxrs:providers>

www.arquitecturajava.com
Apache CXF y REST (Configuración)

<ref bean="jsonProvider"/>
</jaxrs:providers>
<jaxrs:features>
</jaxrs:features>
</jaxrs:server>
<bean id="jsonProvider"
class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
</beans>

Como podemos ver en un primer lugar aparecen las etiquetas <import> que se encargan de
dar de alta los ficheros de configuración de Apache CXF.

<import resource="classpath:META-INF/cxf/cxf.xml" />


<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

Una vez tenemos esto dado de alta añadimos un servidor de JAXRS y el bean que deseamos
gestionar a traves de él.

<jaxrs:server id="servicioRest" address="/">


<jaxrs:serviceBeans>
<bean
class="com.arquitecturajava.serviciosexternos.ServicioPersonas"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jsonProvider"/>
</jaxrs:providers>
<jaxrs:features>
</jaxrs:features>
</jaxrs:server>

www.arquitecturajava.com
Apache CXF y REST (Configuración)

Por último añadimos un proveedor de JSON para que sea capaz de transformar una lista de
personas a una estructura JSON sin problemas

<bean id="jsonProvider"
class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
</beans>

Realizados estos cambios tenemos Apache CXF configurado y podremos realizar las
invocaciones REST necesarias.

Cecilio Álvarez Caules


Cecilio Álvarez Caules Oracle Java Certified Architect

www.arquitecturajava.com
Apache CXF y REST (Configuración)

www.arquitecturajava.com
Apache CXF y REST (Configuración)

www.arquitecturajava.com

También podría gustarte