Maven – Depurar Servicios Web Apache CXF en Eclipse

octubre 10, 2011

Primero vamos a crear un servicio web (SOAP) utilizando Apache CXF. Necesitas tener instalado m2eclipse -ya viene con Eclipse Indigo– y m2e-wtp

Creamos un nuevo proyecto de Maven


Seleccionamos el arquetipo

Establecemos las coordenadas de Maven

Nos queda un proyecto de la siguiente manera

Para probarlo, abrimos el archivo pom.xml y agregamos el plugin “jetty-maven-plugin

<plugin>
    <groupId>org.mortbay.jetty</groupId>
         <artifactId>jetty-maven-plugin</artifactId>
    <version>8.0.1.v20110908</version>
</plugin>

Ahora podemos ejecutarlo dando clic en el proyecto y luego en “Run As…->Maven build…”, pon “jetty:run” en Goals

Al final, verás en la consola un texto como el siguiente

INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1f60f2b: defining beans []; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@16d8a64
Oct 10, 2011 3:59:37 PM org.apache.cxf.transport.servlet.AbstractCXFServlet replaceDestinationFactory
INFO: Servlet transport factory already registered
2011-10-10 15:59:37.112:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080 STARTING
[INFO] Started Jetty Server

Abre tu navegador y ve a http://localhost:8080

Si das clic en el enlace que te muestra podrás ver el WSDL del servicio web. Puedes probar el servicio con una herramienta como SoapUI o el WSDL Explorer de Eclipse.

Bueno, pues ahora lo importante de este artículo, ¿cómo podemos depurar el código de los servicios web? Y con depurar me refiero a establecer breakpoints, examinar variables, ejecutar línea por línea, etc.
Tienes que abrir una consola -no pude hacerlo directamente en Eclipse- e ir al directorio de tu proyecto, una vez ahí, ejecuta el comando

mvnDebug jetty:run

deja abierta la consola y regresa a Eclipse. Da clic derecho en tu proyecto y luego en “Debug As…->Debug Configurations…”. Da clic derecho en “Remote Java Application” y selecciona “New”

deja los valores por default y da clic en Debug. Establece un breakpoint en el código generado e invoca el servicio, verás como la ejecución se detiene y podrás examinar las variables 😀

Anuncios

3 comentarios to “Maven – Depurar Servicios Web Apache CXF en Eclipse”

  1. MrBlonde Says:

    ¿Y no hace falta que le pases ningún parámetro al jetty:run para arrancar en modo debug? ¿Cómo sabe que puerto usar para debug?

    Yo he encontrado más fácil hacerlo desde el código usando los Endpoints de la librería jaxws que se puede encontrar como plugin de Maven. Se puede testear y debugar sin necesidad de arrancar jetty ni usar Remote Debug, porque todo se ejecuta en un mismo proceso. Hay un ejemplo aquí: http://musingsofaprogrammingaddict.blogspot.com/2009/04/using-jax-ws-endpoint-api.html, y si no busca en Google “jaxws endpoint” o algo así.

    Happy programming!

    • cirovladimir Says:

      “¿Y no hace falta que le pases ningún parámetro al jetty:run para arrancar en modo debug? ¿Cómo sabe que puerto usar para debug?”
      El comando “mvnDebug” se encarga de eso

      Buen tip el de los enpoints; solo creas un método main y depuras como una aplicación Java….

      Como estoy desarrollando proyectos con GWT, pusé los servicios web en una aplicación GWT y utilizó el Google Plugin for Eclipse para depurar la aplicación (sólo das clic derecho y Debug as->Web Application).


  2. […] crear un nuevo proyecto puedes utilizar un arquetipo (que es como una plantilla). Yo quería crear un proyecto de servicios web, y pues, ya existe un arquetipo que utiliza el Apache CXF Framework, se llama […]


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: