Artículos
Java

Servlet que devuelve XML

02/Nov/2006

La necesidad de saber cómo podemos construir un Servlet que devuelve XML viene dada de las necesidades de los entornos SOA. Ahora que los desarrollos se están moviendo a arquitecturas SOA empezamos a ver que nos aparecen servicios por todos los lados. Es cierto que no se habla mucho de cómo se desarrollan dichos servicios, ya que las presentaciones de arquitectura SOA suponen que «estaban ahí».

Supongo que los sistemas legados de hace años ya estaban pensando en SOA y dejando sus interfaces lo más correctos posibles. Que no tenían datos en los interfaces de contrato datos relativos a la pantalla en la que se ejecutaban (esos terminales verde marciano) y que solo devolvían negocio.

Ahora que yo todavía no me he encontrado ningún «servicio del pasado» que solo maneje negocio. Y es por ello que tienes que acabar maleándolo para que deje unos datos lo suficientemente claros como para que sean consumidos en un entorno SOA.

En esta evolución nos encontramos que los servicios de los servidores ya no devuelven presentación, sino que ahora, en bastantes casos, devuelven solo negocio. Y qué mejor que utilizar el XML para describir dicho negocio.

Una de las posibilidades en estos casos es ir a un enfoque de Webservices. Posiblemente la más puritana. Si bien, es verdad que, los Webservices todavía no se encuentran en su punto más álgido y tienen ciertas cosas que mejorar: velocidad, versionado, transaccionalidad,…

Un enfoque más sencillo es el de montarse un Servlet que nos devuelva un contenido XML. Así que vamos ver qué pasos hay que dar para poder construir un Servlet que devuelve XML.

Para poder hacer esto, lo primero que tenemos que hacer es crearnos una clase que extienda de HttpServlet.

public class RespuestaXML extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {...}

Como todos sabemos los servlets tienen dos métodos para procesar las peticiones, dependiendo de cómo sean estas (GET o POST). Estos métodos son doGet y doPost. Podemos coger cualquiera de los dos para implementar nuestro ejemplo.

Dentro del método de procesado de la petición lo primero que tenemos que hacer si queremos devolver XML es establecer el tipo de contenido que devolverá el Servlet. Para ello utilizamos el método .setContentType del objeto HttpServletResponse.

Response.setContentType("text/xml");

Con esto le estamos diciendo al cliente receptor de la petición que el contenido que le va a llegar en dicha petición es XML.

Una vez tenemos definido el tipo de contenido lo siguiente es volcar contenido XML a la salida. Para ello deberemos de obtener un PrintWriter sobre el objeto HttpServletResponse.

PrintWriter out = response.getWriter();

Y ahora empezar a volcar datos XML sobre la salida…

out.write("Línea de Código");

En nuestro caso solo estamos devolviendo una etiqueta con el nombre de la web.

Es importante en este punto el recordar que los documentos XML empiezan con la siguiente cabecera:

<?xml version="1.0" ?>

Aunque no estrictamente necesaria es buena práctica incluirla antes de nuestro contenido XML.

Espero que os haya servido este ejemplo que nos explica cómo podemos construir un Servlet que devuelve XML.

Código Fuente

Descárgate el código fuente de Servlet que devuelve XML
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
2 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios