Title: Aplicaciones J2EE
1AplicacionesJ2EE
2Repasamos
- Tres tipos de aplicaciones
- Aplicaciones Web Java
- Objetos distribuidos EJBs
- Aplicaciones Empresariales
3Aplicaciones Web Java
4Introducción
- Colección de recursos tales como
- Jsps
- Servlets
- Ficheros Html
- Imagenes
- Etc
- Ubicados en un URI especÃfico
5Aplicaciones Web J2EE
- Una aplicación web
- está organizada en una estructura jerárquica de
directorios - dos partes
- Un directorio privado WEB-INF
- contiene los recursos que no son descargables
para el cliente - Un directorio público que contiene los recursos
públicos - Ejemplo miaplicación\
- Index.html
- login.jsp
- images\ logo.gif
- doc\ tutorial.pdf
- WEB-INF\
- web.xml (Deployment Descriptor)
- classes\ ServletCompras.class
- lib\ cualquierOtraApi.jar
- Una aplicación web puede ser empaquetada en un
fichero WAR.
6Empaquetado en Archivos WAR
7Archivos WAR
- Web Application Archive
- Permiten empaquetar en una sola unidad
aplicaciones web java completas. - Servlets y JSPs
- Contenido estático
- Html
- Imágenes
- etc.)
- Otros recursos web
8Archivos WAR
- Son una extensión del archivo JAR
- Se introdujeron en la especificación 2.2 de los
servlets. - Multiplataforma
- MultiVendor
9Ventajas
- Simplifican el despliegue de aplicaciones web.
- Facilidad de instalación
- Un solo fichero para cada servidor en un cluster.
- Seguridad
- No permite el acceso entre aplicaciones web
distintas
10Estructura
11Estructura Ejemplo
12Web.xml Descriptor de Despliegue
- WEB-INF/web.xml
- Documento XML
- lt?xml version1.0 encodingISO-8859-1
?gtltDOCTYPE web-app PUBLIC -//Sun
Microsystems, Inc.//DTD Web Application 2.2//EN
http//java.sun.com/j2ee/dtds/web-app_2_2.d
tdgt - En él se dan de alta
- Servlets
- Parámetros del contexto
- TLDs
- Filtros
- Etc.
13Empaquetado de Enterprise JavaBeans
14EJBs
- 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
- MSB
- El módulo o paquete de distribución es un archivo
JAR con una determinada estructura.
15Archivo EJB-JAR
- Un EJB-JAR es la manera en que son distribuidos
desarrollos EJB's - de la misma forma en que los WARS modularizan el
desarrollo de aplicaciones con JSP's/Servlets, un
EJB-JAR lo hace para desarrollos con EJB's - Facilitan el despliegue de los EJBs en cualquier
servidor de aplicaciones J2EE compatible
16Estructura EJB-JAR
- /.class
- Bajo este directorio base se encuentran las
diversas clases que conforman a un EJB - /META-INF/ejb-jar.xml
- Descriptor de despliegue
- /META-INF/
- Otros archivos de configuración requeridos por
el contenedor de EJBs
17ejb-jar.xml Descriptor de Despliegue
- META-INF/ejb-jar.xml
- Documento XML
- lt?xml version"1.0" encoding"UTF-8"?gt
- lt!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems,
Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http//java.sun.com/dtd/ejb-jar_2_0.dtd"gt - ltejb-jar gt
- ltdescriptiongtlt!CDATANo Description.gtlt/descr
iptiongt - ltdisplay-namegtGenerated by XDocletlt/display-nam
egt - ltenterprise-beansgt
- ltsessiongtlt/sessiongt
- ltentity gtlt/entitygt
- ltmessage-drivengtlt/message-drivengt
- lt/enterprise-beansgt
- .
- lt/ejb-jargt
- En él se dan de alta y declaran
- EJBs
- Parámetros del contexto
- Relaciones
- PolÃticas transaccionales
18Aplicaciones Empresariales Java
19Aplicación empresarial J2EE
- Aplicación empresarial J2EE
-
- Aplicación/es web java empaquetadas en WAR
-
- Objetos distribuidos EJB empaquetados en JAR
- Archivo EAR.
- Soluciona problemas relativos al ClassLoader del
sistema
20Estructura del Enterprise Application Archive
- /.war
- Archivos war.
- /.jar
- Archivos (ejb) jar.
- /META-INF/application.xml
- Descriptor de despliegue del módulo EAR.
21application.xml Descriptor de Despliegue
- META-INF/application.xml
- Documento XML
- lt?xml version"1.0" ?gt
- lt!DOCTYPE application PUBLIC
- "-//Sun Microsystems, Inc. //DTD J2EE
Application 1.2//EN" - "http//java.sun.com/j2ee/dtds/application_1_2.d
td"gt - ltapplicationgt
- ltdisplay-namegtPiloto curso Web.
Seresco.lt/display-namegt - ltdescriptiongtPrácticas del curso de desarrollo
weblt/descriptiongt - ltmodulegt
- ltwebgt
- ltweb-urigtappblank.warlt/web-urigt
- ltcontext-rootgt/appblanklt/context-rootgt
- lt/webgt
- lt/modulegt
- lt/applicationgt
- En él se dan de alta y declaran
22Referencias
- 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
23Taller práctico Construcción a mano de mi
primera aplicación Web
24Paso 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
25Paso 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
26Paso a paso Web.xml básico
- Contenido del Web.xml básico
- lt?xml version"1.0" encoding"ISO-8859-1"?gt
- lt!DOCTYPE web-app
- PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" - "http//java.sun.com/dtd/web-app_2_3.dtd"gt
- ltweb-appgt
- ltdisplay-namePrototipo Curso Web.lt/display-namegt
- ltdescriptiongt
- Prototipo desarrollado para el curso sobre
arquitectura weblt/descriptiongt - lt!-- Página de entrada por defecto --gt
- ltwelcome-file-listgt
- ltwelcome-filegtindex.htmllt/welcome-filegt
- lt/welcome-file-listgt
- lt/web-appgt
27Paso a paso Estructura del WAR
- Tenemos ya la estructura básica del archivo WAR
trabajo
WEB-INF
web.xml
index.html
28Paso 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. - Para desplegargo, lo copiamos a la carpeta
webapps y rearrancamos Tomcat - Lo probamos yendo a http//localhost8080/prueba
29Paso 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 META-INF.
- Y dentro de META-INF, creamos el archivo
application.xml con el siguiente contenido
30Paso a paso application.xml básico
- Contenido del application.xml básico
- lt?xml version"1.0" ?gt
- lt!DOCTYPE application PUBLIC
- "-//Sun Microsystems, Inc. //DTD J2EE
Application 1.2//EN" - "http//java.sun.com/j2ee/dtds/application_1_2.d
td"gt - ltapplicationgt
- ltdisplay-namegtPiloto curso Web.
Seresco.lt/display-namegt - ltdescriptiongtPrácticas del curso de desarrollo
weblt/descriptiongt - ltmodulegt
- ltwebgt
- ltweb-urigttrabajo.warlt/web-urigt
- ltcontext-rootgt/trabajolt/context-rootgt
- lt/webgt
- lt/modulegt
- lt/applicationgt
31Paso a paso Estructura del WAR
- Tenemos ya la estructura básica del archivo WAR
Trabajo-ear
META-INF
application.xml
trabajo.war
32Paso 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-web-site.xml - Lo probamos en http//localhost8888/trabajo
33Paso a paso