Mi?rcoles 22 de Noviembre de 2017
   SECCIONES



   LIGAS DE INTERES
  Federación Médica de Sonora
  Sociedad Médica CIMA

 

 

 

 
   CONTENIDO

¿Problemas con CentOS 5 y Tomcat 5.5?

Por UnixLibre / http://wiki.centos.org

Hermosillo, Sonora.- (20 de julio del 2009) La instalación por default de Tomcat en CentOS 5.x no funciona correctamente con el conector de configuración de Plesk. A continuación un resumen de la solución encontrada.

Desde la instalación y configuración del servidor CentOS 5.2 había tenido problemas para que funcionara correctamente con el panel de Control Plesk 8.x. No funcionaba la integración porque el servicio Tomcat no arracaba correctamente al iniciar el servidor.


Por default en CentOS 5.x se puede instalar la versíón 5.5 del contenedor de aplicaciones web Tomcat. La versión 5.5 se considera estable, a pesar que no es la última en la línea de desarrollo. A la fecha, la última versión disponible de Tomcat es la 6.0.20. La instalación de Tomcat en CentOS 5 no es problemática, y automáticamente instala una serie de dependencias. Entre ellas se encuentra el paquete jpackage. Este último paquete organiza la estructura de directorios de las aplicaciones Java de una manera que es relativamente sencillo intercambiar versiones de la misma aplicación como de la máquina virtual en uso, manejando los directorios de trabajo como ligas simbólicas a directorios reales.


Cuando se iniciaba el servicio Tomcat estaba encontrando el siguiente error:


java.io.FileNotFoundException: /usr/share/tomcat5/common/lib/[jdbc-stdext].jar (
No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.(FileInputStream.java:106)
        at org.apache.catalina.util.ExtensionValidator.addSystemResource(Extensi
onValidator.java:209)

...


El error se generaba para varias otras extensiones estándar del software. En resumen, el servicio arrancaba, pero no era capaz de manejar un servlet o JSP mas allá del "Hola Mundo". La solución en mi caso particular fué la instalar manualmente el JDK de Sun. Cabe aclarar que está disponible en el depósito de paquetes de Yum una versión muy reciente de OpenJDK, pero de igual manera no dio resultado.


Los pasos para instalar el JDK 1.6.0_11 de Sun Microsystems es como sigue.


Va a ser necesario reconstruír el paquete, y para ello requerimos crear y/o configurar un archivo llamado $HOME/.rpmmacros. Este archivo se crea en el directorio del usuario, pero no se recomienda que se utilice el usuario root para esta tarea. El contenido de $HOME/.rpmmacros es:


%_topdir /home//rpmbuild
%_tmppath %{_topdir}/tmp


Hay que reemplazar por el nombre de nuestro usuario. En este caso estamos especificando un directorio ~/rpmbuild, el cual es necesario crearlo antes de iniciar el proceso. Creamos adicionalmente los siguientes directorios:


$ mkdir -p ~/rpmbuild/{SOURCES,SRPMS,SPECS,RPMS,tmp,BUILD}


Seguidamente instalamos los paquetes necesarios para construír un archivo rpm.


# yum install -y rpm-build gcc gcc-c++ redhat-rpm-config


En este punto, si no hemos instalado el paquete "jpackage", es momento de hacerlo.


# yum install jpackage-utils


El siguiente paso es obtener el JDK update 11 desde el sitio web de Sun Microsystems. Dependiendo de nuestra plataforma (x86 o x86_64) debemos descargar ya sea jdk-6u11-linux-i586.bin o bien jdk-6u11-linux-x64.bin (para arquitecturas de 64 Bits). Este archivo se coloca en ~/rpmbuild/SOURCES.


Seguidamente necesitamos el archivo correcto para jpackage. Este archivo lo encontraremos en el depósito de software de jpackage. Para esta versión del JDK requerimos el archivo java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm. Este archivo lo colocamos directamente en el direcrtorio ~/rpmbuild:


$ cd ~/rpmbuild/
$ curl -L -O
http://mirrors.dotsrc.org/jpackage/1.7/generic/SRPMS.non-free/java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm


Y procedemos a reconstruír los rpm.


$ rpmbuild --rebuild java-1.6.0-sun-1.6.0.11-1jpp.nosrc.rpm


El resultado serán varios archivos rpm:


Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-1.6.0.11-1jpp.i586.rpm
Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-devel-1.6.0.11-1jpp.i586.rpm
Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-src-1.6.0.11-1jpp.i586.rpm
Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-demo-1.6.0.11-1jpp.i586.rpm
Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-plugin-1.6.0.11-1jpp.i586.rpm
Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-fonts-1.6.0.11-1jpp.i586.rpm
Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-alsa-1.6.0.11-1jpp.i586.rpm
Wrote: /home/usuario/rpmbuild/RPMS/i586/java-1.6.0-sun-jdbc-1.6.0.11-1jpp.i586.rpm


Los cuales procedemos a instalar.


# yum --nogpgcheck localinstall ~/rpmbuild/RPMS/i586/java-1.6.0-*.rpm


Finalmente configuramos el sistema alternatives con la nueva versión del JDK.


# alternatives --config java
There is 1 program that provides 'java'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-sun/bin/java
Enter to keep the current selection[+], or type selection number:


En este caso particular se nos presenta la opción default y recomendada. Si en nuestro sistema contamos con otras versiones de la JDK, aparecerán en este listado. Es necesario seleccionar el número correspondiente e indicarlo al sistema. Probamos la versión del JDK:


$ java -version
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)


Ya con el JDK configurado, procedemos a reiniciar el servicio Tomcat:


# /etc/init.d/tomcat5 restart


Y ya no encontraremos los mensajes de error en el log del software. Los logs de Tomcat los podemos encontrar en /var/log/tomcat/catalina.out. En este punto, el deploy de una aplicación web a través de la consola de administración o a través del panel de control Plesk debe ocurrir sin problemas.


 


 


 


 


 


 



Imprimir Enviar