
Apache Tomcat constituye uno de los más completos contenedores de Servlet gratuito, que programadores de Servlet de Java o Páginas de JavaServer (JSP) utilizan con frecuencia para probar su código.
Tomcat persigue además la total compatibilidad con las versiones de Servlet y las especificaciones de API JSP que admite. Sin embargo, se trata de algo más que un servidor de pruebas, dado que muchas empresas lo emplean en la actualidad en entornos de producción debido a su contrastada estabilidad.
A pesar de su creciente popularidad, hasta ahora resultaba paradójica la falta de una documentación completa, inconveniente que no comparten otros conocidos proyectos de código abierto. Así, con esta obra se ha perseguido completar eficazmente esas lagunas de información: ya sea para empezar a programar Servlet o para comprender los aspectos más complejos de la configuración de Tomcat, en estas páginas encontrará con seguridad lo que busca.



Introducción
Cómo utilizar este libro
Convenciones utilizadas
Código fuente y actualizaciones
Erratas
p2p.wrox.com
Advertencia
1. Apache y Jakarta Tomcat
Unos principios humildes: el proyecto Tomcat
Apache Software Foundation
El proyecto Jakarta
Tomcat
Otros proyectos Jakarta
Distribuir Tomcat
Comparación con otras licencias
GPL
LGPL
Otras licencias
J2EE
API de Java
JCP (Java Community Process)
Las API J2EE
Servidores de aplicaciones J2EE
Cumplir los estándares, competir en implementación
Tomcat y servidores de aplicaciones
Tomcat y los servidores Web
Resumen
2. JSP y Servlet
La aparición de CGI
El nacimiento de los Servlet
Contenedores de Servlet
Acceder a un Servlet
JSP
Bibliotecas de etiquetas JSP
Arquitectura de aplicaciones Web
Arquitectura de sitios Java
Resumen
3. Instalar Tomcat
Instalar la Máquina virtual de Java
Instalar la JVM de Sun en Windows
Instalación en Linux
Instalar tar/gzip
Instalar RPM
Instalar Tomcat
Instalador de Tomcat para Windows
NT Service
Aplicaciones Web de ejemplo
Finalizar la instalación
Configurar variables de entorno
Probar la aplicación
Iniciar el servidor manualmente
Iniciar el servidor como servicio
Cambiar opciones de servicio NT
Tomcat 5 como proceso demonio
Ver la instalación predeterminada
Asignar números de puerto
Instalar Tomcat en Windows con el archivo ZIP
Instalar Tomcat en Linux
Ver la instalación predeterminada
Modificar números de puerto
El directorio de instalación de Tomcat
El directorio bin
El directorio shared
El directorio common
El directorio conf
El directorio logs
El directorio server
El directorio webapps
El directorio work
Resolución de problemas y consejos
El número de puerto ya está utilizado
Ejecutar varias instancias
Un proxy bloquea el acceso
Resumen
4. Arquitectura de Tomcat
Repaso a la arquitectura de Tomcat
El servidor
El servicio
Los conectores
El motor
El reino
Las válvulas
Los registradores
El host
El contexto
Otras clases de la arquitectura de Tomcat
Resumen
5. Configuración básica de Tomcat
Elementos básicos de la configuración de Tomcat 5
El configurador basado en la Web
Habilitar el acceso al configurador
Archivos de $CATALINA_HOME/conf
Configuración básica del servidor
Configurar el servidor con el archivo server.xml predeterminado
El componente Servidor
El componente Servicio
El componente Conector
Utilizar Tomcat como servidor de aplicaciones
El componente Motor
El componente Registrador
El componente Reino
El componente Host
Un registrador anidado dentro del host virtual
Definiciones de contexto de aplicaciones Web
Autenticación en el archivo tomcat-users.xml
El descriptor de implementación predeterminado: web.xml
Definiciones predeterminadas de Servlet
Asignar Servlet
Funcionamiento conjunto de server.xml, descriptores de contexto y web.xml
Asignaciones SSI y CGI
Configurar la duración de la sesión
Procesar la activación de ayuda en el lado cliente: asignaciones MIME
Simular el servidor Web Apache: procesamiento del archivo de bienvenida
Controlar el acceso: catalina.policy
catalina.properties: mayor control sobre comprobaciones de acceso
El configurador y el futuro de la configuración de Tomcat
Distinguir entre configuración y administración
Resumen
6. Configurar aplicaciones Web
Contenidos de una aplicación Web
Recursos públicos
Asignaciones URL
El directorio WEB-INF
El directorio classes
El directorio tlds
El directorio lib
El directorio META-INF
El descriptor de implementación (web.xml)
Descriptor de implementación Servlet 2.3
El encabezado XML
La declaración DTD
El descriptor de implementación Servlet 2.4
context-param
description
display-name
distributable
ejb-local-ref
ejb-ref
env-entry
error-page
filter
filter-mapping
icon
jsp-config
listener
locale-encoding-mapping-list
login-config
message-destination
message-destination-ref
mime-mapping
resource-env-ref
resource-ref
security-constraint
security-role
service-ref
servlet
servlet-mapping
session-config
welcome-file-list
Resumen
7. Administrar aplicaciones Web
Ejemplo de aplicación Web
La aplicación manager de Tomcat
Habilitar el acceso a la aplicación manager
Configurar la aplicación manager
La entrada de contexto de la aplicación manager
Descriptor de implementación de la aplicación manager
Manager de Tomcat: utilizar solicitudes HTTP
Enumerar aplicaciones implementadas
Instalar e implementar aplicaciones en Tomcat 4.x
Implementar una nueva aplicación
Instalar una nueva aplicación
Instalar e implementar aplicaciones en Tomcat 5.x
Implementar una nueva aplicación de forma remota
Implementar una nueva aplicación desde una ruta local
Volver a cargar una aplicación existente
Enumerar los recursos JNDI disponibles
Enumerar las funciones de seguridad disponibles
Enumerar propiedades del sistema operativo y de la JVM
Detener una aplicación existente
Iniciar una aplicación detenida
Eliminar una aplicación instalada (sólo en Tomcat 4.x)
Anular la implementación de una aplicación Web
Mostrar estadísticas de sesión
Consultar Tomcat con el Servlet de proxy JMX
Configurar elementos internos de Tomcat con el Servlet proxy JMX
Manager de Tomcat: interfaz Web
Mostrar el estado del servidor Tomcat
Administrar aplicaciones Web
Implementar una aplicación Web
Manager de Tomcat: administrar aplicaciones con Ant
Posibles errores
Consideraciones de seguridad
Implementador de Tomcat
Resumen
8. Características avanzadas de Tomcat
Válvulas: intercepción al estilo de Tomcat
Válvulas estándar
Implementar el registro de acceso
Ámbito de los archivos de registro
Probar la válvula de registro de acceso
Implementar un solo inicio de sesión
Inicio de sesión múltiple sin la válvula de inicio de sesión único
Configurar una válvula de inicio de sesión único
Restringir el acceso mediante un filtro de solicitudes
Filtro de direcciones remotas
Filtro de host remoto
Configurar válvulas de filtro de solicitudes
Válvula de volcado de solicitudes
Sesiones persistentes
La necesidad de sesiones persistentes
Configurar un administrador de sesiones persistentes
El elemento
Ejemplo de configuración con el administrador de sesiones persistentes
Configurar recursos JNDI
Concepto de JNDI
Tomcat y JNDI
Recursos JNDI típicos de Tomcat
Configurar recursos por medio de JNDI
El elemento
El elemento
El elemento
El elemento
Configurar un origen de datos JDBC
Configurar sesiones de correo
Añadir una definición de recurso al descriptor de contexto de la aplicación
Añadir una referencia a un recurso de sesión de correo en el descriptorde implementación
Descargar e instalar JavaMail 1.3.1 y las bibliotecas JavaBean ActivationFramework
Compilar y configurar SendMailServlet
Crear la página sendmail.jsp
Enviar correo electrónico a través de sesiones JavaMail
Configurar escuchadores de ciclo vital
Eventos de ciclo vital enviados por los componentes de Tomcat
El elemento
Configurar escuchadores de ciclo vital en Tomcat 5
Mostrar MBean creados por escuchadores de ciclo vital con el proxy managerde JMX
Eliminar escuchadores de ciclo vital predeterminados
Resumen
9. Cargadores de clases
Repaso a los cargadores de clases
Cargadores de clases J2SE estándar
Cargador de clases de inicio
Cargador de clases de extensión
El cargador de clases de sistema
El modelo de delegación
Mecanismo de sustitución de estándares confirmados
Comportamiento de los cargadores de clases
Cargar clases bajo petición
Almacenar clases en caché
Espacios de nombres separados
Crear un cargador de clases personalizado
Información adicional sobre cargadores de clases
Seguridad y cargadores de clases
Delegar cargadores de clases
Restringir clases básicas
Separar los espacios de nombres de los cargadores de clases
Administrador de seguridad
Tomcat y los cargadores de clases
Cargador de clases de sistema
Mecanismo de sustitución de estándares confirmados
Cargador de clases comunes
Cargador de clases Catalina
Cargador de clases compartidas
Cargador de clases de aplicaciones Web
Detalles del cargador de clases de aplicaciones Web
Orden de los cargadores de clases
Recarga dinámica de clases
Errores más comunes de los cargadores de clases
Paquetes divididos entre diferentes cargadores de clases
Clases singleton
Analizadores XML
Resumen
10. Conectores HTTP
Conectores HTTP
Tomcat 4.0: conector HTTP/1.1
Tomcat 4.1: conector HTTP/1.1 Coyote
Configurar Coyote HTTP/1.1
Configurar Tomcat 4.x para SSL
Tomcat 5.x: conector HTTP/1.1 Coyote
Configurar HTTP/1.1 Coyote
Configurar Tomcat 5.x para SSL
Configurar Tomcat para compatibilidad CGI
Configurar Tomcat para compatibilidad SSI
Ejecutar Tomcat tras un servidor proxy
Mejorar el rendimiento
Resumen
11. Conectores de servidor Web
Razones para utilizar un servidor Web
Arquitectura de conectores
Rutas de comunicación
Protocolos de conector
El protocolo AJP
El protocolo WARP
Seleccionar un conector
JServ
JK
webapp
JK2
Resumen
12. Tomcat y el servidor Apache
El conector JK2
El módulo mod_jk2 de Apache
El protocolo JServ de Apache (AJP)
El conector JK2 Coyote
Procesos dedicados de Tomcat
Complemento frente a proceso
Múltiples procesos dedicados
Tipos de procesos dedicados
Conectar Tomcat a Apache
Instalar el módulo mod_jk2 de Apache
Generar mod_jk2 en Windows
Generar mod_jk2 en Linux/Unix
Configurar el conector AJP 1.3 en server.xml
Configurar procesos dedicados de Tomcat
Formato del archivo workers2.properties
Configurar el archivo workers2.properties
Configurar un registrador
Parámetros de configuración
Configurar un canal de comunicación de socket TCP
El archivo de memoria compartida (SHM)
Configurar un proceso dedicado AJP
Asignaciones de URI
Ejemplo de archivo workers2.properties
Añadir directivas para cargar el módulo jk2 (httpd.conf)
Configurar el archivo jk2.properties
Probar la configuración definitiva
Configurar SSL
Configurar SSL en Tomcat
Configurar SSL en Apache
Configurar el archivo httpd.conf
Generar Apache con compatibilidad SSL
Copiar archivos a una instalación de Windows
Archivo de configuración para generar un certificado
Generar un certificado de prueba
Configurar mod_ssl en Apache
Probar la configuración de Apache y Tomcat con compatibilidad SSL
Equilibrar la carga en Tomcat con Apache
Cambiar CATALINA_HOME en los archivos de inicio de Apache
Configurar diferentes puertos de conector AJP
Configurar diferentes puertos de servidor
Deshabilitar el conector HTTP/1.1 Coyote
Configurar jvmRoute en el motor independiente
Comentar el motor Catalina
Configurar procesos dedicados de Tomcat en jk2.properties
Configurar procesos dedicados de Tomcat en workers2.properties
Parámetros de los procesos dedicados de Tomcat
Parámetros del proceso dedicado de equilibrio de carga
Ejemplo de archivo workers2.properties
Probar el equilibrador de carga
Probar sesiones transparentes
Comprobar el comportamiento en serie
Probar con diferentes factores de carga
Resumen
13. Tomcat e IIS
Función del filtro ISAPI
Conectar Tomcat a IIS
Probar las instalaciones de Tomcat e IIS
Configurar el conector en el archivo server.xml de Tomcat
Instalar el filtro ISAPI
Actualizar el registro de Windows para el filtro ISAPI
Modificar manualmente el registro
Modificar el registro por medio de una secuencia de comandos
Configurar procesos dedicados de Tomcat (el archivo workers2.properties)
Configurar el registrador
Establecer un canal de comunicación
Configurar un archivo de memoria compartida
Configurar un proceso dedicado AJP
Configurar asignaciones de URI
Ejemplo de archivo workers2.properties
Configurar el archivo jk2.properties
Crear un directorio virtual en IIS
Añadir el filtro ISAPI a IIS
Probar la configuración
Trucos de resolución de problemas
Mejorar el rendimiento
Mantener conexiones TCP abiertas y tiempo de espera
Afinar el conector AJP
Procesos dedicados AJP de equilibrio de carga
Utilizar SSL
Resumen
14. Conectividad JDBC
Fundamentos de JDBC
Establecer y finalizar conexiones a RDMBS
Evolución de las versiones JDBC
Tipos de controladores JDBC
Agrupar conexiones de bases de datos
Tomcat y la evolución de JDBC
Emular JNDI y agrupaciones en Tomcat 5
Configuración preferida: recursos JNDI
Las etiquetas Resource y ResourceParams
Factorías de orígenes de datos
Trabajar con otros RDBMS
DBCP: compatibilidad con agrupaciones
Admitir transacciones y transacciones distribuidas
Configuración práctica de recursos JNDI
Crear la base de datos MySQL de prueba
Configurar el usuario de sólo lectura
Añadir el recurso JNDI JDBC al contexto predeterminado
Probar la configuración de recursos JNDI
Configuración JDBC alternativa
Administradores de agrupación de conexiones alternativos
Acerca de PoolMan
Implementar PoolMan
Archivo de configuración XML de PoolMan
Obtener conexiones JDBC sin búsqueda JNDI
Probar PoolMan con un controlador heredado
Obtener una conexión con asignación JNDI
Probar PoolMan con búsquedas compatibles con JNDI
Implementar agrupaciones de terceros
Resumen
15. Seguridad en Tomcat
Proteger la instalación de Tomcat
ROOT y tomcat-docs
Admin y manager
Ampliar la seguridad
jsp-examples y servlets-examples
Cambiar el comando SHUTDOWN
Ejecutar Tomcat con una cuenta especial
Crear un usuario Tomcat
Consejo para Windows
Consejo para Linux
Ejecutar Tomcat con el usuario Tomcat
Configurar Windows
Configurar Linux
Proteger el sistema de archivos
Sistema de archivos de Windows
Listas de control de acceso
Restringir permisos
Conceder permisos
Sistema de archivos de Linux
Proteger la máquina virtual de Java
Repaso del administrador de seguridad
Conceder permisos a aplicaciones
Sintaxis de la entrada grant
Permisos disponibles
Habilitar el sistema de administración de seguridad
Temas avanzados del administrador de seguridad
Utilizar el administrador de seguridad con Tomcat
Habilitar el administrador de seguridad de Tomcat
Archivo de directivas de Tomcat
Prácticas recomendadas del administrador de seguridad
Utilizar el administrador de seguridad
Entender los requisitos de las aplicaciones
Habilitar la creación de un cargador de clases
Permitir a controladores JDBC abrir conexiones de socket a bases de datos
Enviar correo electrónico con JavaMail
Leer o escribir en archivos externos al directorio de la aplicación Web
Proteger aplicaciones Web
Autenticación y reinos
Mecanismos de autenticación
BASIC
DIGEST
Formulario
Certificado cliente HTTPS
Configurar la autenticación
Formulario de autenticación
Reinos de seguridad
Usuarios y funciones
Reino basado en archivos: UserDatabase
Crear una contraseña compendiada
Reinos JDBC
Reinos JNDI
Reinos JAAS
Configurar un reino JAAS
Inicio de sesión único
Codificar con SSL
JSSE
Instalar JSSE
Preparar el almacén de claves de certificado
Instalar un certificado de una autoridad de certificados
Proteger recursos con SSL
Configurar Tomcat
Tomcat 4.1
Tomcat 5
Restringir host
Resumen
16. Alojamiento compartido de Tomcat
Alojamiento virtual
Alojamiento virtual basado en IP
Implementar alojamiento virtual basado en IP en Apache
Evitar errores comunes
Alojamiento virtual basado en nombres
Implementar el alojamiento virtual basado en nombres en Apache
Evitar errores comunes
Alojamiento virtual con Tomcat
Ejemplo de configuración
Introducción al alojamiento virtual con Tomcat
Componentes de Tomcat
Tomcat 5 como servidor independiente
Tomcat 5 con Apache
Configurar Apache
Compartir solicitudes entre Tomcat y Apache
Mejorar el alojamiento compartido
Crear Máquinas virtuales de Java diferentes para cada host virtual
Establecer límites de recursos de memoria en la JVM de Tomcat
Factores que determinan los requisitos de memoria
Establecer límites de memoria en Tomcat.
Resumen
17. Probar la carga de un servidor
La importancia de la prueba de carga
Probar la carga con JMeter
Instalar y ejecutar JMeter
Realizar y entender planes de prueba con JMeter
Funciones de JMeter
Timer
Listener
Logic Controller
Sampler
Elementos Config
Assertions
HTTP Proxy Server
Distribuir pruebas de carga
Interpretar los resultados de las pruebas
Establecer objetivos y probarlos
Establecer limitaciones de escalabilidad
Análisis posteriores
Técnicas de optimización
Optimizaciones de Java
Tener en cuenta la MV servidor
Optimizar la asignación de memoria
Seleccionar una JVM de un distribuidor diferente
Optimizaciones de Tomcat
Combinar Tomcat con otro servidor Web
Parámetros de conectores
Alternativas a JMeter
Resumen
18. Compatibilidad con JMX
Requisitos de administración
Acerca de JMX
La arquitectura de JMX
Nivel de instrumentación
Nivel de agentes
El servidor de MBean
Conectores y adaptadores de protocolo
Servicios de agente
Nivel de servicios distribuidos
API remota de JMX
Antología de los MBean
MBean estándar
MBean dinámicos
MBean modelo
MBean abiertos
Elementos administrables de JMX en Tomcat 5
Componentes arquitectónicos administrables de Tomcat 5
Servicio
Servidor
Motor
Conector
Host
Componentes anidados administrables
Reino
Registrador
Válvula
Administrador
Objetos de datos de tiempo de ejecución administrables
UserDatabase
Usuario
Función
Objetos de recursos administrables
Recursos de nombres
Entorno
Recurso
ResourceLink
Objetos expuestos relacionados con aplicaciones
WebModule
Servlet
Objetos internos de Tomcat expuestos
RequestProcessor
Cache
ThreadPool
Acceder a la compatibilidad JMX de Tomcat 5 a través del proxy de manager
Trabajar con el proxy JMX
Modificar atributos de MBean
Acceder a la compatibilidad de Tomcat 5 con JMX remotamente a travésdel conector RMI
Incluir compatibilidad con JMX en server.xml
Parchear un atributo sin documentar
Sustituir la implementación JMX de referencia por MX4J
Iniciar Tomcat con el acceso remoto a JMX habilitado
Acceder a Tomcat 5 con la utilidad queryjmx
Configurar el contexto inicial JNDI
Probing remoto con queryjmx
Problemas de seguridad
Resumen
19. Agrupar Tomcat 5
Ventajas de la agrupación
Escalabilidad y agrupación
La necesidad de una mayor disponibilidad
Conceptos básicos de agrupación
Patrón topológico principal-apoyo
Patrón de comportamiento ante fallos
Modelo de agrupación de Tomcat 5
Equilibrio de carga
Equilibrio de carga con mod_jk2 y sesiones fijas
Sesiones fijas
Compartir sesiones
Sesiones fijas sin sesiones compartidas
Sesiones fijas con un administrador de sesiones persistentes y un almacénde archivos compartido
Sesiones fijas con un administrador de sesiones persistentes y un almacénbasado en JDBC
Replicación de sesiones en memoria
Trabajar con agrupaciones de Tomcat 5
Administrar sesiones en Tomcat 5
El papel de las cookies y los navegadores modernos
Configurar un clúster de Tomcat 5
Configurar varias instancias de Tomcat en un equipo
Cerrar el clúster de Tomcat
Configurar aplicaciones Web mínimas
Deshabilitar los conectores HTTP
Configurar puertos TCP AJP para las instancias agrupadas de Tomcat
Atributo distributable de Servlet 2.4 para aplicaciones Web
Configuración coherente
Equilibrar la carga a través de mod_jk2 de Apache
Configurar el servidor Apache
Configurar mod_jk2
Preparar la utilización de diferentes métodos de sesiones compartidas
Método 1: configurar la replicación en memoria
Funcionamiento del SimpleTcpCluster predeterminado de Tomcat 5
Configurar el administrador de sesiones de clúster con el elemento
Elemento de replicación
Configurar la página JSP de prueba para la replicación de sesiones de Tomcat
Probar el clúster de replicación de sesiones en memoria de Tomcat 5
Observar el equilibrio de carga para solicitudes con la misma sesión
Observar resolución de errores HA
Método 2: administrador de sesiones persistentes con un almacén de datos
Configurar el elemento
El elemento anidado
Añadir compatibilidad con sesiones fijas con el equilibrador de carga mod_jk2
Probar un clúster de sesiones persistentes basado en un sistemade archivos compartido
Observar la resolución de errores ordenada
Observar una resolución de errores repentina
Método 3: administrador de sesiones persistentes con un almacén JDBC
Probar un clúster de Tomcat con un administrador de sesiones persistentesbasado en JDBC
Alternativa de equilibrio de carga de nivel de aplicaciones (balancer)
Equilibrar la carga con el filtro balancer
Trabajar con el filtro balancer
Volver a configurar instancias de Tomcat para el funcionamientoindependiente
Configurar el filtro balancer
Configurar la cadena de reglas del filtro balancer
Probar el filtro balancer
La redirección y el problema de las cookies
Distribución de solicitudes asistida por hardware con NAT
La complejidad de las agrupaciones
Agrupaciones y rendimiento
Agrupaciones y tiempo de respuesta
Resolver problemas de rendimiento con agrupaciones
Resumen
20. Tomcat incrustado
La importancia de Tomcat incrustado en el diseño de sistemas modernos
Casos típicos de aplicaciones incrustadas
Papel del administrador con Tomcat incrustado
El modo incrustado en Tomcat
El servidor de MBean y el bus de objetos
Control interno frente a control externo
Ant de Apache como motor de secuencias de comandos
El modelador Jakarta Commons
Tareas JMX de Ant personalizadas del modelador Commons
Tarea
Subelemento
Subelemento
Tarea
Tarea
Flujo de funcionamiento de secuencias de comandos de Ant
Utilizar una secuencia de comandos de Ant para configurar un servidorincrustado mínimo
Descargar e instalar Tomcat incrustado
La secuencia de comandos de inicio incrustada min.xml
Probar el servidor Tomcat incrustado
Iniciar un servidor mínimo
Acceder a Tomcat 5 incrustado
Cerrar el servidor incrustado
Añadir la aplicación Web manager
Añadir la función manager para autenticación
Añadir un elemento
Utilizar la aplicación manager en el servidor incrustado
Resumen
Apéndices
A. Log4J
Introducción a Log4J
Componentes de Log4J
Registradores
Anexadores
Niveles
Diseños
Archivo de configuración de Log4J de ejemplo
Configurar Log4J
Configurar CLASSPATH
Trabajar con Log4J
Utilizar un sencillo archivo de propiedades
Utilizar Log4J mediante programación
Utilizar un archivo de configuración XML
Comportamiento de registradores y anexadores
Ejemplos de Log4J
Registrar desde una clase de Java
Parámetros
SampleLog.properties: archivo de configuración de registro
Clase de Java WroxTestLog4J
Resultado del registro
Registrar desde una aplicación Web
Parámetros
WroxLogServlet: Servlet de inicialización
Parámetros del descriptor de implementación
WroxLogging.properties: archivo de configuración de registro
WroxLogPage.jsp: página JSP de ejemplo para pruebas
Resultado del archivo de registro
Análisis de las opciones de registro
Opciones de nivel meta
Registrar en la consola
Registrar en un archivo
Rotación de archivos de registro
Registrar en diferentes formatos
Utilizar formato HTML
Parámetros
HTMLLog.properties File: archivo de configuración de registro
HTMLLayout.jsp: ejemplo de página JSP para pruebas
Resultado del registro
Registrar en varios destinos
Parámetros
MultiDest.properties: archivo de configuración de registro
MultiDestLog.jsp: página JSP de ejemplo para pruebas
Contenidos del archivo de registro
Registrar en un servidor SMTP: mensajes de registro de correo electrónico
Parámetros
SMTPLog.properties: archivo de configuración de registro
SMTPLog.jsp: página JSP de ejemplo para pruebas
Contenidos del mensaje SMTP
Registrar en registros propios del sistema: registro de eventos NT
Utilizar la DLL
Parámetros
NTLog.properties: archivo de configuración de registro
NTLog.jsp: página JSP de ejemplo para pruebas
Utilizar PatternLayout
Modificadores de formato
Trucos de rendimiento
Resumen
B. Tomcat e IDE
Depuración remota
Intellij IDEA 4.0
Depuración remota con IDEA
Eclipse 3.0
Componente Sysdeo para Tomcat
Ejecución y depuración
Depuración remota
NetBeans 3.6
Tomcat incrustado
Tomcat externo
Depuración remota
JBuilder X
Tomcat incrustado
Monitor HTTP
Depuración JSP con Tomcat 4.1.
Depuración remota
Resumen
C. Ant de Apache
Instalar Ant
Introducción a Ant
Tareas de Ant
El proceso de generación de Ant
Estado de generación de Ant (notificaciones por correo electrónico)
Resumen
Otros clientes que compraron Apache Tomcat 5, también compraron:
Otros libros de Programación. Otros: