Empaquetado de aplicaciones JEE

Anuncio
Aplicaciones JEE
2008-2009
DASDI
1
Repasamos …
Tres
tipos de aplicaciones
Aplicaciones Web Java
Objetos distribuidos EJBs
Aplicaciones Empresariales
2008-2009
DASDI
2
Plataforma
J2EE
2008-2009
DASDI
3
Clientes
2008-2009
DASDI
4
Aplicaciones Web Java
2008-2009
DASDI
5
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
Aplicaciones Web J2EE
Organización: estructura jerárquica de
directorios
dos partes
Un árbol de directorios privado: WEB-INF
2008-2009
contiene los recursos que no son descargables para el cliente
Un árbol de directorios público
aplicación\
index.html
login.jsp
images\ *.gif
doc\ *.pdf
META-INF\MANIFEST.MF
WEBWEB
-INF\
INF\
web.xml Deployment Descriptor
classes\ *.class
lib\ *.jar DASDI
7
Archivos WAR
Web
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
2008-2009
Application Archive
Cada servidor a su manera
DASDI
8
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
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
2008-2009
No permite el acceso entre aplicaciones
web distintas (aunque se ejecuten en el
mismo servidor)
DASDI
10
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
2008-2009
lib
JAR files
tlds
TLD files
DASDI
Class files
11
Estructura Ejemplo
index.html
faq.war
WEB-INF
web.xml
list.jsp
admin
classes
lib
tlds
show.jsp
add.jsp delete.jsp
psql.jar
faqServlet.class
2008-2009
DASDI
faqtags.tld
12
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…
2008-2009
Se informa al servidor de como es la aplicación
DASDI
13
Ejemplo de Web.xml
2008-2009
web.xml tiene muchas opciones de
configuración, echa un vistazo a la
DASDI
14
especificación
Creación manual de .WAR
2008-2009
DASDI
15
Empaquetado de
Enterprise JavaBeans
2008-2009
DASDI
16
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:
2008-2009
Sesión, Entidad, MDB
El módulo o paquete de distribución es
un archivo JAR con una determinada
estructura.
DASDI
17
Archivo EJB-JAR
Un EJB-JAR es la manera en que son
distribuidos desarrollos EJB's
2008-2009
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
DASDI
18
Estructura EJB-JAR
/*.class
Bajo este directorio base se encuentran
las diversas clases que conforman a un
EJB
/META-INF/ejb
ejb--jar.xml
Descriptor de despliegue
/META-INF/*
Otros archivos de configuración
requeridos por el contenedor de EJBs
2008-2009
Nombre y formato particular a cada vendor
orion-jar.xml, jboss.xml, web-sphere.xml, etc
DASDI
19
Ejemplo estructura EJB-JAR
2008-2009
DASDI
20
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
Ejemplo ejb-jar.xml
2008-2009
DASDI
22
Aplicaciones
Empresariales Java
2008-2009
DASDI
23
Aplicación empresarial JEE
Aplicación empresarial JEE
=
Aplicación/es web java empaquetadas en
WAR
+
Objetos distribuidos EJB empaquetados en
JAR
= Archivo EAR.
2008-2009
Soluciona problemas relativos al
ClassLoader del sistema
DASDI
24
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
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
Estructura application.xml
2008-2009
DASDI
27
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
2008-2009
www.javasoft.com
www.theserverside.com
DASDI
28
Taller práctico …
Construcción “a mano”
de mi primera aplicación
Web
2008-2009
DASDI
29
Paso a paso …
2008-2009
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 …
DASDI
30
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.
2008-2009
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 …
DASDI
31
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
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
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 *
2008-2009
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.
DASDI
34
Paso a paso …
Creación del EAR
Como mínimo, vamos a tener que crear
un descriptor de despliegue
application.xml.
2008-2009
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 …
DASDI
35
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
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
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
Paso a paso …
Creación del EAR
2008-2009
DASDI
39
Descargar