Servicios web (1): Instalando Tomcat y Axis

Resulta que tengo que hacer una práctica para una asignatura de la universidad que consiste en realizar un servicio web que ofrezca acceso a bases de datos distribuidas usando para codificar esos datos y un drive para acceder a las bases de datos. Como la cosa es larga, voy a intentar guardar los pasos que dé, por dos motivos: puede resultarle interesante a alguien y me ayudará a aclararme a la hora de documentar todo lo que hice.

Hoy empezaré explicando lo que he hecho para tener listo el motor para ofrecer ,
esto es, . Los pasos que he seguido son los siguientes:

  1. Instalar . Para ello, me he ido a la página oficial de Tomcat y me he descargado la versión elegida (en mi caso, los binarios de tomcat versión 4.1). Los he descomprimido en el directorio de instalación (normalmente, sería /usr/local/, pero yo he preferido mi home, ~/). La instalación es tan sencilla como eso. Para que termine de funcionar, tendreis que añadir la variable de entorno CATALINA_HOME apuntando al directorio de instalación, y probablemente la variable JAVA_HOME apuntando a vuestra instalación de (digo probablemente porque yo ya lo tenía hecho de antes, pero me suena que en el manual de te dicen que lo hagas). Por ejemplo, yo he añadido las línea que siguen a mi fichero .tcshrc:

    setenv CATALINA_HOME /home/deigote/jakarta--4
    setenv JAVA_HOME /usr/lib/j2se/1.4

    Por supuesto, si no teneis , debereis instalar Java. Yo he escogido 1.4 porque es la que según parece es estable actualmente. Además, para Ubuntu fue tan fácil como escribir en la terminal:

    # apt-get install j2re1.4 j2sdk1.4
    Para probar que todo va bien, podemos arrancar . En la terminal, escribimos

    $ $CATALINA_HOME/bin/catalina.sh start

    Y comprobamos que no hay errores.
    En la Documentación de Tomcat 4 teneis toda la ayuda que haga falta por si algo fallara.

  2. Instalar . Para ello, vamos a la página oficial de Axis y descargamos la versión escogida. En mi casó, escogí descargarme los binarios de Axis 1.3, que ya tiene un año y probablemente esté más probada que las siguientes, que son muy recientes. De todas formas, ellos dicen que la versión probada de verdad es la 1.1, así que igual habría que escoger esa. Una vez descargada descomprimimos por ejemplo en la home, y abrimos el fichero de ayuda. En mi caso, hice:
    $ tar zxvf -bin-1_3.tar.gz
    $ cd -1_3
    $ firefox firefox docs/index.html

    A partir de aquí es cuestión de seguir las instrucciones del capítulo de instalación. Pero en resumen, hay que hacer lo siguiente.

    • Copiar webapps/ a /webapps $ cp -R webapps/ $CATALINA_HOME/webapps
    • Establecer la variable de entorno AXIS_HOME al directorio de descompresión de . En mi caso, añadí la siguiente línea a mi fichero .tcshrc: setenv AXIS_HOME ~/-1_3
    • Poner a punto el classpath de . Aquí hay un par de erratas en el manual, ¡ojo!. Algunos ficheros de $AXIS_HOME/lib tienen un número de version que en el manual no aparece. Lo mejor es hacer un listado de lo que hay en $AXIS_HOME/lib e ir añadiendo dichos números a lo que especifica el manual, o mejor aún, hacer links simbólicos de tal manera que no haya número de versión. En mi caso, hice:
      $ cd $AXIS_HOME/lib
      $ ln -s commons-discovery-0.2.jar commons-discovery.jar
      $ ln -s commons-logging-1.0.4.jar commons-logging.jar

      Así, pude usar la variable de entorno tal y como viene en el manual, añadiendo un .jar que me parece que es necesario y que tampoco viene. En resumen, añadí lo siguiente a mi .tcshrc:
      setenv AXISCLASSPATH $AXIS_LIB/.jar:$AXIS_LIB/commons-discovery.jar:
      $AXIS_LIB/commons-logging.jar:$AXIS_LIB/jaxrpc.jar:
      $AXIS_LIB/saaj.jar:$AXIS_LIB/log4j-1.2.8.jar:$AXIS_LIB/xml-apis.jar:
      $AXIS_LIB/wsdl4j-1.5.1.jar:$AXIS_LIB/xercesImpl.jar

      He metido saltos de línea para que se vea bien, pero teneis que quitárlos para que funcione.
  3. Probar que todo ha ido bien. Para ello, arrancaremos como ya he explicado antes y haremos todas las pruebas que vienen en el manual. Basicamente:
    • Abrimos la página de inicio de Axis. Ahí podemos, por ejemplo, listar los y ver el wsdl de cada uno.
    • Abrimos http://localhost:8080/axis/happyaxis.jsp en el navegador y comprobamos que no hay ninguna librería necesaria que falte. Por ejemplo, a mí me faltaba org.apache.xml.security.Init, para XML seguro, pero era opcional y de momento no la necesito.
    • Probar a abrir un Soap EndPoint y un un JWS EndPoint y ver que sale algo parecido a lo que debería. Aunque todavía no sé que es un endpoit, parece que simplemente estamos listando métodos de de ejemplo que ellos nos dan, de dos formas distintas: SOAP y JWS (el primero supongo que será la manera estandar, mientras que el segundo es una manera rápida de probar un servicio web desde un fichero escrito en ).
    • Probar el AdminClient. No sé exactamente para que es (forma parte del siguiente capítulo, escribir nuestros ), pero si no funciona puede que hayamos hecho algo mal. Para ello, en una terminal hacemos:
      $ cd $AXIS_HOME/samples/stock
      $ -cp $AXISCLASSPATH org.apache..client.AdminClient \ -lhttp://localhost:8080//services/AdminService deploy.wsdd

      y debería salir algo como
      log4j:WARN No appenders could be found for logger (org.apache..i18n.ProjectResourceBundle).
      log4j:WARN Please initialize the log4j system properly.
      Processing file deploy.wsdd
      Done processing

      De momento, ignoro los warnings ya que no me merece la pega pegarme con ellos todavía.
    • Probar la demo de StockQuote (por ejemplo). Ojo, que aquí de nuevo hay una errata en el manual. Debemos probar lo siguiente:
      $ cd $AXIS_HOME
      $ -cp .:$AXISCLASSPATH samples.stock.GetQuote \ -lhttp://localhost:8080//servlet/AxisServlet -uuser1 -wpass1 XXX

      y salir algo parecido a lo siguiente:
      log4j:WARN No appenders could be found for logger (org.apache..i18n.ProjectResourceBundle).
      log4j:WARN Please initialize the log4j system properly.
      XXX: 55.25

      Lo importante es el 55.25, y sale, así que estupendo. Si lo haces como dice el manual te saldrá:

      Exception in thread "main" .lang.NoClassDefFoundError: samples/stock/GetQuote

      Si eres nuevo en , esto te dará algunos quebraderos de cabeza.

Y esto es todo. En el siguiente capítulo hablaré de los pasos que siga para instalar y desplegar un servicio web.

Continua: Servicios web (2): Desplegando un servicio JWS.

4 Respuestas a “Servicios web (1): Instalando Tomcat y Axis”


  1. 1 Carlos

    Gracias por el curre.
    La serie “Servicios web” me ha ahorrado bastantes horas de investigación.

  2. 2 deigote

    Me alegro muchono sólo porque te haya sido de utilidad, sino porque te hayas animado a comentarlo en el blog. Estas cosas siempre animan a seguir escribiendo ayudas como ésta. Me hubiese gustado aumentarla más con otras cuestiones como el uso de ant (del que tienes un excelente tutorial en Ruido Blanco) y otras cosillas, pero bueno, se hace lo que se puede

  3. 3 Héctor

    Hola Carlos!
    No soy capaz de encontrar el fichero .tcshrc ¿Alguna recomendación? Muchas gracias!

  4. 4 Deigote

    Hola Héctor. Dudo que Carlos vuelva por aquí a leer tu comentarioasí que te contesto yo mismo, que por otra parte, soy el que escribió lo del fichero .tcshrc.

    Los ficheros .<algo>rc son, normalmente, ficheros de configuración del programa <algo>, en este caso la shell o consola que uses (odio tener que poner este enlace, mira que decir comando en vez de orden o mandato, y eso que les avisé!). La consola por defecto en casi todas las distribuciones Linux es Bash, así que deberías usar el fichero .bashrc (yo usaba la consola tcsh, por eso hacía mención a dicho fichero). Aunque en el caso de variables de entorno, lo más lógico es usar el fichero .profile, que se ejecuta al inicio de la sesión (no cada vez que abres la terminal) y es global.

    Puedes leer en el siguiente enlace acerca del uso de .bashrc y .profile (ojo, es algo antiguo y usan .bash_profile en vez de .profile, que es lo que se usa ahora).

  1. 1 Servicios web (2): Desplegando un servicio JWS | El blog de Deigote
    Dirección Pingback a 5 Sep 2008 @ 1:19 pm

Añade un Comentario

XHTML: Usted puede utilizar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>