03. empaquetado de aplicaciones jee
TRANSCRIPT
Aplicaciones JEE
2008-2009 1DASDI
Repasamos …
� Tres tipos de aplicaciones
� Aplicaciones Web Java� Aplicaciones Web Java
� Objetos distribuidos EJBs
� Aplicaciones Empresariales
2008-2009 2DASDI
Plataforma J2EE
2008-2009 DASDI 3
J2EE
Clientes
2008-2009 DASDI 4
Aplicaciones Web JavaAplicaciones Web Java
2008-2009 5DASDI
Aplicación Web Java
�Colección de recursos: � Jsps
� Servlets
Ficheros Html, Imagenes� Ficheros Html, Imagenes
� Librerías (jars), etc…
� Ubicados en un URI específico
�Resuelven una funcionalidad
� Interfaz de usuario Web
http://www.dasdi.uniovi.es/calculadora
2008-2009 6DASDI
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
aplicación\index.htmllogin.jspimages\ *.gifdoc\ *.pdfMETA-INF\MANIFEST.MFWEBWEB--INFINF\\web.xml � Deployment Descriptorclasses\ *.classlib\ *.jar
2008-2009 7DASDI
Archivos WAR
�Web Application Archive
� Permiten empaquetar en una sola unidad aplicaciones webweb java completascompletas
� 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 manera2008-2009 8DASDI
Archivos WAR
� Son una extensión del archivo JAR
� Se introdujeron en la especificación 2.2 de los servlets.
Multiplataforma� Multiplataforma
� MultiVendor
root\META-INF\ MANIFEST.MF*.*
Estructura de un JAR2008-2009 9DASDI
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 10DASDI
Ejemplo de Estructura
JSP pages, HTML documents, image files
JSP pages, HTML documents, image files
app.war
Contentdirectories
beans
WEB-INF
classes
Packagedirectories
lib
web.xml
Class files
JAR files
Class files
tlds TLD files
2008-2009 11DASDI
Estructura Ejemplo
faq.warindex.html
WEB-INF
classes lib tlds
delete.jspadd.jsp
admin
list.jsp
show.jsp
faqServlet.class
psql.jarfaqtags.tld
web.xml
2008-2009 12DASDI
Descriptor de Despliegue: web.xml
� WEB-INF/web.xml
� Documento XML
<?xml version=”1.0” encoding=”ISO-8859-1” ?><DOCTYPE web- app PUBLIC
� En él se dan de alta Servlets, JSPs, TLDs, Filtros, etc… � Se informa al servidor de como es la aplicación
<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>
2008-2009 13DASDI
Ejemplo de Web.xml
web.xml tiene muchas opciones de configuración, echa un vistazo a la especificación
2008-2009 14DASDI
Creación manual de .WAR
2008-2009 15DASDI
Empaquetado de Empaquetado de Enterprise JavaBeans
2008-2009 16DASDI
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� Sesión, Entidad, MDB
� El módulo o paquete de distribución es un archivo JAR con una determinada estructura.
2008-2009 17DASDI
Archivo EJB-JAR
� Un EJB-JAR es la manera en que son distribuidos desarrollos EJB's� WAR modulariza aplicaciones con JSP's/ServletsJSP's/Servlets
� EJB-JAR modulariza aplicaciones con EJB's
� Facilitan el despliegue de los EJBs en cualquier servidor de aplicaciones J2EE compatible
2008-2009 18DASDI
Estructura EJB-JAR
/*.class
Bajo este directorio base se encuentran las diversas clases que conforman a un EJB
/META-INF/ejbejb--jar.xmljar.xml
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, etc2008-2009 19DASDI
Ejemplo estructura EJB-JAR
2008-2009 20DASDI
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� 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 21DASDI
Ejemplo ejb-jar.xml
2008-2009 22DASDI
Aplicaciones Aplicaciones Empresariales Java
2008-2009 23DASDI
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 24DASDI
Estructura del Enterprise Application Archive
/*.war
Archivos WAR.
/*.jar
Archivos EJB-JAR (jar).Archivos EJB-JAR (jar).
/META-INF/application.xmlapplication.xml
Descriptor de despliegue del módulo EAR.
2008-2009 25DASDI
META-INF/application.xmlDescriptor 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
2008-2009 26DASDI
"-//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-n ame><description>Prácticas del curso de desarrollo web</description><module>
<web><web-uri>appblank.war</web-uri><context-root>/appblank</context-root>
</web></module>
</application>
Estructura application.xml
2008-2009 27DASDI
Referencias
• Libros� Web Development with JavaServer Pages by Duane Fields and Mark Kolb (Manning)
� Core Servlets and JavaServer Pages by Marty Hall (Prentice-Hall)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 28DASDI
Taller práctico …Construcción “a mano” de mi primera aplicación de mi primera aplicación Web
2008-2009 29DASDI
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 EAR conteniendo un solo archivo WAR con una página HTML estática.
� Primero entonces, vamos a “montar” nuestra aplicación Web …
2008-2009 30DASDI
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 PROYECTOScolgando 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 31DASDI
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><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 32DASDI
Paso a paso …Estructura del WAR
� Tenemos ya la estructura básica del archivo WAR:
trabajo
WEB-INF
web.xml
index.html
2008-2009 33DASDI
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 jardel jdk y lo llamamos trabajo.wardel 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 34DASDI
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 PROYECTOScolgando 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 …
2008-2009 35DASDI
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><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 36DASDI
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 37DASDI
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:� 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://localhost:8888/trabajo
2008-2009 38DASDI
Paso a paso …Creación del EAR
2008-2009 39DASDI