miércoles, 29 de julio de 2009

Primera Aplicacion Web, en java porsupuesto

Lo primero que tenemos que hacer es disponer de las herramientas necesarias, entre las cuales debemos tener: un jdk(no necesariamente el de Sun) y de un contenedor web, para eso suponemos que ya hemos instalado el jdk de Sun, descargamos el Tomcat en su versión comprimida en zip(Binary Distributions/Core/Zip). Para hacer las cosas más fáciles vamos a instalar el tomcat en un determinado directorio , yo lo he instalado en H:\appservers>, el proceso de instalar simplemente es copiar lo que hemos descargado a este directorio y descomprimirlo, yo(adicionalmente) le cambio el nombre al directorio.

1. Primero lo copio a un directorio:

H:\appservers>dir
29/07/2009 10:47 a.m. 6,379,115 apache-tomcat-6.0.20.zip

2. Ahora lo descomprimo
29/07/2009 10:47 a.m. 6,379,115 apache-tomcat-6.0.20.zip
29/07/2009 10:51 a.m. apache-tomcat-6.0.20

3. Ahora le cambio el nombre al directorio creado, por ejemplo a tomcat6
29/07/2009 10:47 a.m. 6,379,115 apache-tomcat-6.0.20.zip
29/07/2009 10:51 a.m. tomcat6

Ok ya tienes instalado el Apache Tomcat en tu máquina.

Antes de iniciar el tomcat tenemos que agregar una variable de entorno, la famosa variable JAVA_HOME cuyo valor debe ser el directorio de tu jdk, el mio es 'C:\Archivos de programa\Java\jdk1.6.0_14' esta variable de entorno en Windwos lo podemos agregar en 'Escritorio/Click derecho en el icono Mi PC/Propiedades/Pestaña Opciones Avanzadas/Variables de Entorno'

Ahora si probemos el tomcat que hemos instalado:

1. Nos vamos hacia el directorio donde lo instalamos y nos dirigimos hacia la carpeta bin, cuyo contenido debe de ser el siguiente:

14/05/2009 01:15 a.m. 17,508 bootstrap.jar
14/05/2009 01:15 a.m. 2,374 catalina-tasks.xml
14/05/2009 01:15 a.m. 10,652 catalina.bat
14/05/2009 01:15 a.m. 13,573 catalina.sh
14/05/2009 01:15 a.m. 9,341 commons-daemon.jar
14/05/2009 01:15 a.m. 1,342 cpappend.bat
14/05/2009 01:15 a.m. 2,104 digest.bat
14/05/2009 01:15 a.m. 1,624 digest.sh
14/05/2009 01:15 a.m. 74,398 jsvc.tar.gz
14/05/2009 01:15 a.m. 4,951 service.bat
14/05/2009 01:15 a.m. 3,452 setclasspath.bat
14/05/2009 01:15 a.m. 4,556 setclasspath.sh
14/05/2009 01:15 a.m. 2,096 shutdown.bat
14/05/2009 01:15 a.m. 1,563 shutdown.sh
14/05/2009 01:15 a.m. 2,097 startup.bat
14/05/2009 01:15 a.m. 1,956 startup.sh
14/05/2009 01:15 a.m. 19,399 tomcat-juli.jar
14/05/2009 01:15 a.m. 240,128 tomcat-native.tar.gz
14/05/2009 01:15 a.m. 57,344 tomcat6.exe
14/05/2009 01:15 a.m. 98,304 tomcat6w.exe
14/05/2009 01:15 a.m. 3,189 tool-wrapper.bat
14/05/2009 01:15 a.m. 3,291 tool-wrapper.sh
14/05/2009 01:15 a.m. 2,101 version.bat
14/05/2009 01:15 a.m. 1,567 version.sh

De todos esos archivos solo nos interesan(por el momento) dos de ellos startup.bat(para iniciar el contenedor web) y shutdown.bat(para detenerlo)

2. Ejecutamos el archivo startup.bat de la siguiente manera:

H:\appservers\tomcat6\bin>startup

-- La salida de la ejecución del programa de inicio nos muestra el directorio base, el directorio
-- home y el directorio temporal del contenedor tomcat, todo esto lo podemos cambiar,
-- adicionalmente nos muestra la versión del
-- JRE(Entorno de ejecución java, muy distinto a JDK, JRE pertenece al JDK)
-- que estamos usando

Using CATALINA_BASE: H:\appservers\tomcat6
Using CATALINA_HOME: H:\appservers\tomcat6
Using CATALINA_TMPDIR: H:\appservers\tomcat6\temp
Using JRE_HOME: C:\Archivos de programa\Java\jdk1.6.0_14
H:\appservers\tomcat6\bin>

Como vemos tambien nos sale una ventana emergente con los logs de inicio del tomcat:

29/07/2009 11:06:44 AM org.apache.catalina.core.AprLifecycleListener init
INFO: La biblioteca nativa de Apache Tomcat basada en ARP que permite un rendimiento ¾ptimo en entornos de desarrollo no ha sido h
allada en java.library.path: C:\Archivos de programa\Java\jdk1.6.0_14\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS
;C:\WINDOWS\SYSTEM32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\WBEM;C:\Archivos de programa\Java\jdk1.6.0_14\bin;H:\oracle10g\product\10.2.0\
db_1\BIN
29/07/2009 11:06:44 AM org.apache.coyote.http11.Http11Protocol init
INFO: Inicializando Coyote HTTP/1.1 en puerto http-8080
29/07/2009 11:06:44 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1033 ms
29/07/2009 11:06:44 AM org.apache.catalina.core.StandardService start
INFO: Arrancando servicio Catalina
29/07/2009 11:06:44 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
29/07/2009 11:06:45 AM org.apache.coyote.http11.Http11Protocol start
INFO: Arrancando Coyote HTTP/1.1 en puerto http-8080
29/07/2009 11:06:45 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
29/07/2009 11:06:45 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/31 config=null
29/07/2009 11:06:45 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1121 ms

La ultima línea nos dice que el servidor se inicio en 1121 milisegundos

3. Ahora procedemos a verificar el servicio en un navegador web, abrimos una ventana del navegador y colocamos la siguiente direccion: http://localhost:8080

Lo que debería de aparecer es lo siguiente:

If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!

Si tu estas viendo está página por medio de un navegador web, significa que haz instaladao Tomcat satisfactoriamente. Felicitaciones.



Una vez que hemos instalado las herramientas (jdk+contenedor web) ahora procedemos a crear una pequeña aplicacion que mostrará el famoso Hola Mundo

1. Nos vamos hacia el directorio /tomcat6/webapps
2. Una ves allí creamos una estructura de directorios similar a lo siguiente:

webapps(directorio)
-- holamundo(directorio)
-- -- index.jsp(archivo)
-- -- WEB-INF(directorio)
-- -- -- web.xml(archivo)

El contenido de los archivos es el siguiente:

index.jsp Archivo jsp, java server page, que procesará la información del servidor en forma dinámica

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Mi Primera Página Web</title>
</head>
<body>
<%int cantidad = request.getParameter("cantidad")==null?7:Integer.parseInt(request.getParameter("cantidad"));%>
<%for(int i=0; i<cantidad; i++){%>
<h3>Hola Mundo en Java</h3>
<%}%>
</body>
</html>

web.xml Archivo xml, descriptor de despliegue de tu aplicación web, describe como tu aplicación será montada en el contenedor Tomcat, tiene muchos parámetros y etiquetas para que puedas configurar tu aplicación( si quieres certificarte como SCWCD tienes que aprenderte cada una de ellas)


<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- Nombre de nuestra aplicacion Web -->
<display-name>Mi Primera Aplicacion Web</display-name>
<!-- Tiempo en minutos de duracion de una sesion -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!-- Lista de archivos de bienvenida -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


3. Ahora lo que hacemos es ir hacia la siguiente url:
http://localhost:8080/holamundo/index.jsp?cantidad=10

Ahora verás el procesamiento de tu página jsp q te mostrará el hola mundo 10 veces

4. Si no quieres colocarle el número de puerto a la dirección(o no quieres usar el por default), entonces edita el archivo server.xml que se encuentra en /tomcat6/conf/server.xml allí aproximandamente en la línea 66, encontrarás la siguiente etiqueta:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

cambia el valor 8080 del atributo port, por el valor 80, ahora puedes acceder a tu aplicación sin especificar el puerto, es decir así: http://localhost/holamundo/index.jsp?cantidad=12


1 comentario:

  1. a que hace referencia el INFO sobre La biblioteca nativa de Apache Tomcat basada en ARP no ha sido hallada. Yo encontre q se necesita un archivo llamado "tcnative-1.dll", esta en el startup script referenciada y en el PATH pero no la reconoce..

    ResponderBorrar

Es bueno comunicarnos, comenta!!.