6. Aplicación Web Java
Colección de recursos:
Jsps
Servlets
Ficheros Html, Imagenes
Librerías (jars), etc…
Ubicados en un URI específico
http://www.dasdi.uniovi.es/calculadora
Resuelven una funcionalidad
Interfaz de usuario Web
2008-2009
DASDI
6
7. Aplicaciones Web J2EE
Organización: estructura jerárquica de
directorios
dos partes
Un árbol de directorios privado: WEB-INF
contiene los recursos que no son descargables para el cliente
Un árbol de directorios público
2008-2009
aplicación
index.html
login.jsp
images *.gif
doc *.pdf
META-INFMANIFEST.MF
WEB-INF
WEB-INF
web.xml
Deployment Descriptor
classes *.class
lib *.jar DASDI
7
8. Archivos WAR
Web Application Archive
Permiten empaquetar en una sola
unidad aplicaciones web java
completas
Se despliega en un servidor de
aplicaciones
contenedor Web
Hacer un “deploy” al servidor
El servidor “desmonta” el war y coloca
cada cosa donde lo necesita
Cada servidor a su manera
2008-2009
DASDI
8
9. Archivos WAR
Son una extensión del archivo JAR
Se introdujeron en la especificación
2.2 de los servlets.
Multiplataforma
MultiVendor
root
META-INF MANIFEST.MF
*.*
Estructura de un JAR
2008-2009
DASDI
9
10. Archivos WAR: Ventajas
Simplifican el despliegue de
aplicaciones web.
Facilidad de instalación
Copiar fichero en el servidor
Uno para cada servidor si es un cluster.
Seguridad
No permite el acceso entre aplicaciones
web distintas (aunque se ejecuten en el
mismo servidor)
2008-2009
DASDI
10
11. Ejemplo de Estructura
JSP pages, HTML documents, image files
app.war
Content
directories
JSP pages, HTML documents, image files
web.xml
WEB-INF
Class files
classes
beans
Package
directories
lib
2008-2009
JAR files
tlds
Class files
TLD files
DASDI
11
13. Descriptor de Despliegue: web.xml
WEB-INF/web.xml
Documento XML
<?xml version=”1.0” encoding=”ISO-8859-1” ?>
<DOCTYPE web-app PUBLIC
”-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN”
”http://java.sun.com/j2ee/dtds/web-app_2_2.dtd”>
<web-app>
. . .
</web-app>
En él se dan de alta Servlets, JSPs, TLDs,
Filtros, etc…
Se informa al servidor de como es la aplicación
2008-2009
DASDI
13
17. EJBs
Los EJBs se agrupan en paquetes para
poder ser distribuidos.
En un solo paquete se pueden dar de
alta varios EJBs de diferentes tipos:
Sesión, Entidad, MDB
El módulo o paquete de distribución es
un archivo JAR con una determinada
estructura.
2008-2009
DASDI
17
18. Archivo EJB-JAR
Un EJB-JAR es la manera en que son
distribuidos desarrollos EJB's
WAR modulariza aplicaciones con
JSP's/Servlets
EJB-JAR modulariza aplicaciones con
EJB's
Facilitan el despliegue de los EJBs en
cualquier servidor de aplicaciones
J2EE compatible
2008-2009
DASDI
18
19. Estructura EJB-JAR
/*.class
Bajo este directorio base se encuentran
las diversas clases que conforman a un
EJB
/META-INF/ejb-jar.xml
ejb-
Descriptor de despliegue
/META-INF/*
Otros archivos de configuración
requeridos por el contenedor de EJBs
Nombre y formato particular a cada vendor
orion-jar.xml, jboss.xml, web-sphere.xml, etc
2008-2009
DASDI
19
21. ejb-jar.xml
Descriptor de Despliegue
META-INF/ejb-jar.xml
Documento XML
En él se dan de alta y declaran
EJBs
Parámetros del contexto
Relaciones
Políticas transaccionales
etc
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-ar PUBLIC
"-//Sun Microsystems, Incprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar >
. . .
</ejb-jar>
2008-2009
DASDI
21
24. Aplicación empresarial JEE
Aplicación empresarial JEE
=
Aplicación/es web java empaquetadas en
WAR
+
Objetos distribuidos EJB empaquetados en
JAR
= Archivo EAR.
Soluciona problemas relativos al
ClassLoader del sistema
2008-2009
DASDI
24
25. Estructura del Enterprise Application
Archive
/*.war
Archivos WAR.
/*.jar
Archivos EJB-JAR (jar).
/META-INF/application.xml
application.xml
Descriptor de despliegue del módulo EAR.
2008-2009
DASDI
25
26. META-INF/application.xml
Descriptor de Despliegue
En él se dan de alta y declaran
Nombre y descripción de la aplicación que se despliega
Los diferentes módulos web y EJB que forman la
aplicación.
<?xml version="1.0" ?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc. //DTD J2EE Application 1.2//EN"
"http://java.sun.com/j2ee/dtds/application_1_2.dtd">
<application>
<display-name>Piloto curso Web. Seresco.</display-name>
<description>Prácticas del curso de desarrollo
web</description>
<module>
<web>
<web-uri>appblank.war</web-uri>
<context-root>/appblank</context-root>
</web>
</module>
2008-2009
DASDI
</application>
26
28. Referencias
•
Libros
Web Development with JavaServer Pages by
Duane Fields and Mark Kolb (Manning)
Core Servlets and JavaServer Pages by Marty
Hall (Prentice-Hall)
Java Server Programming J2EE Edition (Wrox)
Books
URLs
Servlet specification available at
http://java.sun.com/products/servlet/download.html
www.javasoft.com
www.theserverside.com
2008-2009
DASDI
28
30. Paso a paso …
El OC4J sólo admite el despliegue de
aplicaciones J2ee completas, es decir, archivos
EAR.
Tenemos que construir nuestro propio archivo
EAR conteniendo un solo archivo WAR con una
página HTML estática.
Primero entonces, vamos a “montar” nuestra
aplicación Web …
2008-2009
DASDI
30
31. Paso a paso …
Mi primera aplicación Web
Como mínimo, vamos a tener que crear una
página estática (index.html) y un descriptor de
despliegue web.xml.
Creamos una carpeta temporal TRABAJO
colgando de la carpeta PROYECTOS
Dentro de trabajo creamos una carpeta WEB-INF.
Ahora, colgando de trabajo y con el bloc de notas
creamos el archivo index.html con el clásico
“Hola Mundo!”.
Y dentro de WEB-INF, creamos el archivo
web.xml con el siguiente contenido …
2008-2009
DASDI
31
32. Paso a paso …
Web.xml básico
Contenido del Web.xml básico:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-namePrototipo Curso Web. Seresco.</display-name>
<description>
Prototipo desarrollado para el curso sobre desarrollo web para
Seresco.</description>
<!-- Página de entrada por defecto -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
2008-2009
DASDI
32
33. Paso a paso …
Estructura del WAR
Tenemos ya la estructura básica del archivo
WAR:
trabajo
WEB-INF
web.xml
index.html
2008-2009
DASDI
33
34. Paso a paso …
Creación del WAR
Abrimos una ventana de comandos mediante
setenv.bat
Nos colocamos DENTRO del directorio trabajo
Creamos un archivo jar mediante la herramienta jar
del jdk y lo llamamos trabajo.war
jar cvf trabajo.war *
Ya tenemos el archivo war creado. Podemos
comprobar que es un zip común abriéndolo con el
Winrar. ¿Lo desplegamos ya?
No podemos: El OC4J sólo admite despliegue de
módulos EAR.
2008-2009
DASDI
34
35. Paso a paso …
Creación del EAR
Como mínimo, vamos a tener que crear
un descriptor de despliegue
application.xml.
Creamos una carpeta temporal TRABAJO-EAR
colgando de la carpeta PROYECTOS
Movemos dentro el archivo trabajo.war
Dentro de trabajo creamos una carpeta METAINF.
Y dentro de META-INF, creamos el archivo
application.xml con el siguiente contenido …
2008-2009
DASDI
35
36. Paso a paso …
application.xml básico
Contenido del application.xml básico:
<?xml version="1.0" ?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc. //DTD J2EE Application 1.2//EN"
"http://java.sun.com/j2ee/dtds/application_1_2.dtd">
<application>
<display-name>Piloto curso Web. Seresco.</display-name>
<description>Prácticas del curso de desarrollo web</description>
<module>
<web>
<web-uri>trabajo.war</web-uri>
<context-root>/trabajo</context-root>
</web>
</module>
</application>
2008-2009
DASDI
36
37. Paso a paso …
Estructura del WAR
Tenemos ya la estructura básica del archivo
WAR:
Trabajo-ear
META-INF
application.xml
trabajo.war
2008-2009
DASDI
37
38. Paso a paso …
Creación del EAR
Abrimos una ventana de comandos mediante setenv.bat
Nos colocamos DENTRO del directorio trabajo-ear
Creamos un archivo jar mediante la herramienta jar del jdk y
lo llamamos trabajo.ear
jar cvf trabajo.ear *
Ya tenemos el archivo ear creado.
Para desplegar:
Arrancamos el OC4J
Desplegamos el nuevo EAR por medio de la herramienta de
administración del OC4J:
java -jar %OC4J_HOME%admin.jar ormi://localhost admin admin -deploy -file trabajo.ear deploymentName trabajo
HAY QUE DAR DE ALTA LA APP WEB EN EL http-website.xml
Lo probamos en http://localhost:8888/trabajo
2008-2009
DASDI
38
39. Paso a paso …
Creación del EAR
2008-2009
DASDI
39